こんばんは。ファガイです。
本日は、LaravelのRouteの便利なasについて紹介します。
そもそもasって言ってるけど何?
asはRouteクラスで書いたルーティングに別名を付けることが出来るプロパティです。
route.php
<?php
Route::get('/', array('as' => 'home', 'uses' => function()
{
return View::make('hello');
}));
Route::get('/user/login', array('as' => 'login', 'uses' => 'UserController@showLogin'));
こんな感じに書きます。
例えば、今回の例の場合、UserControllerから他の場所に飛ばしたい時って出てくると思います。
そんな時に役に立つのが先程指定しておいたasです。
asを指定しておけば以下を指定することでルート(/)に飛ばすことが出来ます。
Redirect::route('home');
こんな感じ。
これを行う利点
利点はこれしか無いでしょう。
コントローラーでリダイレクト先をパスで書く必要が無くなります。例えば、いきなり仕様変更でホームを表示するURLが変わった時、route.phpを変えるだけです。
helloを表示するページを/homeに変更する事になった時
route.php
<?php
Route::get('/home', array('as' => 'home', 'uses' => function()
{
return View::make('hello');
}));
Route::get('/user/login', array('as' => 'login', 'uses' => 'UserController@showLogin'));
このように、homeと書き加えるだけですね。コントローラーに対して一括置換等をしなくて済みます。便利。
ではではー。
コメント
‘home’と名づけたルートだけ特別で、Redirect::home();が使えたりします。たぶん。(仕様が変わっているかも知れません。)
そうなんですね。知らなかったです。
ありがとうございます!