ルーティングの基本形
Route::メソッド('パス', ルーティング先);
たとえばGETメソッドで'ドメイン/bbs/show_posts'がリクエストされ、そのコントローラがBbsController、メソッドがshowPostsの場合は以下のように書く。
|
1 |
Route::get('/bbs/show_posts', 'BbsController@showPosts'); |
メソッド
HTTPメソッドに対応したRouteクラスのスタティックメソッドが準備されている。
getpostputpatchdeleteoptions
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で指定する。