ルーティングの基本形
Route::メソッド('パス', ルーティング先);
たとえばGETメソッドで'ドメイン/bbs/show_posts'
がリクエストされ、そのコントローラがBbsController
、メソッドがshowPosts
の場合は以下のように書く。
1 |
Route::get('/bbs/show_posts', 'BbsController@showPosts'); |
メソッド
HTTPメソッドに対応したRouteクラスのスタティックメソッドが準備されている。
get
post
put
patch
delete
options
URL
HTTPリクエストで指定されるURLを記述する。
- ドメイン以下のパスを書く
- 頭の
'/'
はあってもなくてもよい
たとえばGET
メソッドによるhttp://www.my_site/bbs/show_posts
へのリクエストを扱う場合は以下のようになる。
1 |
Route::get('/bbs/show_posts', ...); |
または
1 |
Route::get('bbs/show_posts', ...); |
ルーティング先
コントローラーとアクションを指定
'コントローラー名@アクション名'
で指定する。
たとえば上記のURLへのリクエストをBbsController
コントローラーのshowPosts
アクションにルーティングしたい場合は以下のように指定する。
1 |
Route::get('/bbs/show_posts', 'BbsController@showPosts); |
シングルアクションコントローラーを指定
'コントローラー名'
で指定する。
たとえば上記のURLへのリクエストでシングルアクションコントローラー'ShowPosts'
にルーティングしたい場合は以下のように指定する。
1 |
Route::get('/bbs/show_posts', 'ShowPosts); |
直接ビューを指定
コントローラーを介さずに直接ビューを指定する方法。無名関数を使い、戻り値にビューを指定したview()
関数を渡す。
Route::get('パス', function () { return view('ビュー'); });
たとえば先のURLへのリクエストでビューファイルが以下のように配置されているとする。
resources/views/bbs/profile.blade.php
この場合のルーティングは以下のようになる。
1 2 3 |
Route::get('/bbs/show_posts', function() { return view('bbs.profile'); }); |
ビューで参照する変数がある場合、以下のようにコントローラーと同じように無名関数の中で設定できる。
1 2 3 4 5 |
Route::get('/bbs/show_posts', function() { $title = 'プロフィール; return view('bbs.profile'); }); |
直接出力
無名関数の戻り値に直接文字列を渡すと、それがそのまま送信される。
Route::get('パス', function () { return '文字列'; });
以下の例では、ブラウザーに単に「こんにちは」とだけ表示される。
1 |
Route::get('URL', function () { return 'こんにちは'; }); |
直接HTMLを送ることも可能。
1 2 3 4 5 6 7 |
Route::get('URL', function () { return ' <!DOCTYPE html> <html lang="ja"> <head> ..... </html> '; }); |
ルートパラメーター
ルートパラメーターは、以下の様にリクエストURIの一部としてパラメーターの値が送信される。
http://ドメイン/.../パラメーター
パラメーターの値のみ送り、それを扱う変数の名前はLaravelで指定する。