ルーティングを理解!Laravelでrouteを使う方法【初心者向け】

初心者向けにLaravelでrouteを使う方法について解説しています。URLとコントローラのアクションを対応させる上で必須です。ルーティングする書き方を説明しているので、ぜひ参考にしてみてください。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Laravelでrouteを使う方法について解説します。

Laravelではルーティングを設定するファイルがあるので、ルーティングをする書き方を理解しておきましょう。

 

そもそもPHPについてよく分からないという方は、PHPとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプPHP/Laravel講座の内容をもとに紹介しています。

 

田島悠介

今回は、Laravelに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Laravelでrouteを使う方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

routeとは

routeとは、URLとコントローラーのアクションの対応ルールのことです。対応ルールを作成することをルーティングと呼んだりします。

このURLでアクセスされた時にはこのコントローラーのアクションを呼び出してください、ということをアプリケーションにお願いするために、Laravel5.3からは大抵routes/web.phpにルートを定義していきます(5.2以下は確かapp/Http/routes.php?お使いのバージョンに合わせて定義場所を確認してください)。

このファイルをみればどのURLでどの処理が行われるのかが一目瞭然にわかるという話になります。ここに何も書かなければせっかく書いた処理も呼ばれることはないため、忘れずにルーティングしていきましょう。

 

Laravelのrouteの書き方

routeの書き方はroutes/web.phpにRouteファサードを使って記述していきます。Routeファサードのメソッドはhttpメソッドに対応した名前で、get、post、put、deleteなどが基本的なものです。例えば、

Route::get('books', 'PostController@index');

これは/booksパスにgetメソッドできたリクエストをPostController@indexで処理する、というルートを定義します。

RESTfulなルーティングを一度に行うresourceメソッドも使用可能です。

以下のルートは Route::resource(‘books’, ‘BooksController’); とほぼ同値です。

Route::get('books', ‘BooksController@index');
Route::post('books', 'BookController@store');
Route::get('books/create', 'BookController@create');
Route::get('books/:id', 'BookController@show');
Route::put('books/:id', 'BookController@update');
Route::delete('books/:id', 'BookController@destroy');
Route::get('books/:id/edit', 'BookController@edit');

 

[PR] PHPプログラミングで挫折しない学習方法を動画で公開中

実際にLaravelのrouteを使ってアクセスしてみよう

実際にroute使ってみましょう。/test/{slug}というパスに対して、TestControllerというindexアクションを持ったコントローラーをルーティングします。({slug}は任意の文字列とします)

まずは、routes/web.phpにルーティングを行います。

Route::get(‘test/{slug}’, ‘TestController@index’);

対応するTestControllerおよびindexアクションを定義します。ルートに記述したslugというパラメータがindexアクションの引数として与えられます。

<?php

namespace AppHttpControllers;

class TestController extends Controller
{
    public function index($slug)
    {
        return htmlspecialchars($slug);
    }
}

ブラウザから/test/hogehogeにアクセスすると画面上にhogehogeが表示されるかと思います。ルートにはURLからアクションへのパラメータの受け渡しが行えますね。

これによって通常はidなどで異なるリソースの取得や更新などを振り分けることができるでしょう。

この記事を監修してくれた方

鵜澤峻平(うさわしゅんぺい)

普現在はフリーランスのエンジニアをしていてプログラミング歴は5年目になります。普段はRails、Laravel、Node.js等を使ってWeb、モバイルアプリケーションを作成しています。開発実績としては、いくつかのWebサービス、コンシューマー向けモバイルアプリケーション、NPOサイトリニューアル、ロボット用プログラムなどがあります。

TechAcademyでメンターをはじめたのは、「プログラミングでやりたいことがある人を応援したい」、「講師と受講者が話し合って学び方を決めていく」に惹かれたからです。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でもPHPやフレームワークのLaravelを使ってWebアプリケーション開発を習得できるオンラインブートキャンプPHP/Laravel講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、現役エンジニア講師とマンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう 厳しい試験を通過した講師 があなたの相談に真摯に向き合います。

「ただ気になることを相談したい」
「漠然としているがプロの話を聞いてみたい」

こんな気持ちでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する