LaravelのRouteで使用するasが非常に使える件

スポンサーリンク

こんばんは。ファガイです。
本日は、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と書き加えるだけですね。コントローラーに対して一括置換等をしなくて済みます。便利。

ではではー。

コメント

  1. HiroKws より:

    ‘home’と名づけたルートだけ特別で、Redirect::home();が使えたりします。たぶん。(仕様が変わっているかも知れません。)

タイトルとURLをコピーしました