実践Laravel 基本編5 コントローラーとルーティング1

Posted: 2014-06-01 00:12 |  laravel 

■ルーターとコントローラー

アプリケーションのベースとなるURIをコントローラーを使って構築してみましょう。
ルーターとコントローラーの結び付けは、何パターンか紹介したものと組み合わせると
非常にシンプルな記述でURIを決定する事ができます。

■ベーシック

実践Laravel 基本編2 ルーティング1 で紹介したGETとPOST等をコントローラと組み合わせる場合は以下のようになります。
GETリクエスト
\Route::get('/', "HomeController@showWelcome");
POSTリクエスト
\Route::post('/', "HomeController@showWelcome");
GET, POST両方
\Route::any('/', "HomeController@showWelcome");
コントローラーを使用しない場合は、無名関数で指定していましたが、
この場合は、それぞれのリクエストでHomeControllerのshowWelcomeを実行する、という指定方法になります。
またRESTfulなAPI設計も簡単にできるように、
GET, POST以外にもput, patch, delete, optionsも同様に指定できます。
\Route::put('/', "HomeController@showWelcome");
\Route::patch('/', "HomeController@showWelcome");
\Route::delete('/', "HomeController@showWelcome");
\Route::options('/', "HomeController@showWelcome");

第一引数 URI、第二引数 コンローラー+メソッドの文字列、closure、または配列
となります。

■別名をつける

指定時にコントローラー+メソッドに名前を付け、
実装時に簡単に利用する事もできます。
\Route::get('/', ['uses' => "HomeController@showWelcome", 'as' => 'welcome']);
HomeControllerのshowWelcomeを 'welcome' と別名を与えると、
内部では リダイレクト実装やヘルパー等で簡単に使用できるようになります。
asとusesで指定されたものはIocコンテナという、各機能などの格納場所へ、
保持されます。それ以降はそこから再利用されます。
コントローラーを使用しない場合であっても、この方法は共通で使用できます。

■prefixでuriを作る

これ以外に直接urlに関係するものを簡単に変更できるものがあります。
"prefix"を利用すると、APIバージョンをURIに含めたり、urlを修正、追加などが容易です。
 
\Route::get('/sample', ['uses' => "HomeController@showWelcome", 'as' => 'welcome', 'prefix' => '/api/v1']);
prefixをこのように指定すると、
uriは /api/v1/samopleと変更されます。

■ドメイン毎に

実際にはあまり使用する機会が無いかもしれませんが、
ルーターで複数のドメインなどを扱う場合は、ドメイン毎にuriを指定する事もできます。
\Route::get('/sample', [
    'domain' => 'fuga', 'uses' => "HomeController@showWelcome", 'as' => 'welcome', 'prefix' => '/api/v1']
);
domainがfugaの場合が該当します。

■フィルター処理を指定

フィルター系のを実装した場合によく利用されます。
特定のIPアドレスのアクセスを禁止したり、認証の確認など用途は様々です。
Laravelで用意されているものは、controller処理前に実行されるbefor、
処理後に実行されるafterがあります。
\Route::get('/sample', [
        'domain' => 'fuga', 'uses' => "HomeController@showWelcome",
        'as' => 'welcome', 'prefix' => '/api/v1',
        'after' => 'admin',  'before' => 'auth.basic'
    ]
);

■ルーティング確認

routes.phpに記述したルーターは、
コマンドラインから取得する事ができます、
$ php artisan routes
このコマンドで、現在設定されているルーティング情報や、
uri、フィルター等を確認できます。

 

about ytake

執筆に参加しています


Laravel お役立ち情報

share



このエントリーをはてなブックマークに追加

Categories

laravel 45

DTM 0

music 0

PHP全般 31

0

JAPAN 1

WORLD 1

javascript 4

RDBMS 1

NoSQL 1

NewSQL 1

Recent Posts

Ad

comments powered by Disqus

GitHub

Social Links

Author


クリエイティブ・コモンズ・ライセンス
Yuuki Takezawa 作『Ytake Blog』はクリエイティブ・コモンズ 表示 - 非営利 4.0 国際 ライセンス で提供されています。

© ytake/comnect All Rights Reserved. 2014