ルーティングについて
2018/10/12
Laravelのルーティングについてみていきます。
ルーティングとは
ルーティングとはURIと処理をつなげるものです。
Laravel5.2では app/HTTP/routes.php でルーティングを登録します。
ルーティングの書き方
ルーティングの書き方は3つあります。
【1】ルーティングと同時に無名関数を使って表示させる
【2】コントローラとメソッドで指定してルーティングさせる
【3】resourceを使ってルーティングさせる
【1】ルーティングと同時に無名関数を使って表示させる
一番シンプルな書き方です。
Route::get('hello/', function() { return 'Hello World'; });
見たまま直感で読めるとも思いますが、「http://{ホスト名}/hello/ でアクセスしたら、'Hello World'を返却する」 となってます。
http://{ホスト名}/hello/
にアクセスすると
'Hello World'が表示されます。
ビュー関数を使って表示させる場合
Route::get('articles', function () { return view('articles.index'); });
http://{ホスト名}/articles
にアクセスすると
resources/views/articles/index.blade.php
が表示されます。
【2】コントローラとメソッドでルーティングさせる
フレームワークでおなじみのルーティングです。
Route::get('articles', 'ArticlesController@index');
http://{ホスト}/articles
にアクセスするとArticlesControllerのindexメソッドが実行されます。
【3】resourceを使ってルーティングさせる
RESTfulといわれる作り方です。
Route::resource('articles','ArticleController');
上のように記載するだけで、以下のような多数のルーティングに対応します。
HTTPメソッド | URL | 使い方 | 実行メソッド |
---|---|---|---|
GET | /article | 一覧表示 | ArticleController@index |
GET | /article/create | 新規作成 | ArticleController@create |
POST | /article | 新規保存 | ArticleController@store |
GET | /article/{id} | 表示 | ArticleController@show |
GET | /article/{id}/edit | 編集 | ArticleController@edit |
PUT/PATCH | /article/{id} | 更新 | ArticleController@update |
DELETE | /article/{id} | 削除 | ArticleController@destroy |
なお、追加でルーティングの記述を入れるケースも出てくると思います。
その場合はresourceの前に記述しないと表示されませんので注意してください。
Route::get('articles/setting',['as'=>'articles.setting','uses'=>'ArticleController@setting']); Route::resource('articles','ArticleController');
controllerを使ってルーティングさせるのはNG
Laravel5.2からは非推奨になっています。5.3ではなくなります。
Route::controller('users', 'UserController');
ルーティングの説明は以上です。

仕事でLaravelを使っています。気づいたことや新しい発見など情報を発信していきます。メールはこちら