【Laravel入門】ルーティング
はじめに
前回Laravelのインストールをやりました。
詳細はこちら→【Laravel入門】 インストールから起動まで - 人生の恥は書き捨て
つい先日Laravelの日本語版サイトもできたということで、
なかなか盛り上がってきているようです。
Laravel - ウェブ職人のためのPHPフレームワーク
今回はLaravelのルーティングについて見て行きたいと思います。
routes.phpでのルーティング
Laravelでは、基本的にリクエストとレスポンスの対応をroutes.phpに書いていきます。
文字列を返す
Route::get('/', function() { return "Hello Laravel!" });
この記述でルートにgetリクエストが来たときに、"Hello Laravel""という文字列を表示します。
ここではPHP5.3以降からの無名関数が使われています。function(){~}の部分ですね。
リクエストに対して文字列を返す無名関数を返しています。
Route::get('/', function() { return "Hello Laravel!" });
Viewを返す
リクエストに対してViewを返します。
これもViewを返す記述をした無名関数を返しています。
Route::get('/', function() { return View::make('hello'); });
app/views/hello.php が表示されます。
関数を返す
リクエストに対して関数を指定して返します。
Route::get('/', 'HomeController@sayHello');
app/controllers/HomeController.phpのsayHelloメソッドが実行されます。
<?php class HomeController extends BaseController { public function sayHello(){ return View::make('hello'); } }
という風にHomeController.phpに記述しておけば、【Viewを返す】と同様になります。
更に詳しいルーティングについてはここに載ってます。
ルーティング
Controllerでのルーティング
Laravelでは基本的にはroutes.phpでルーティングを設定しますが、
Restfulコントローラーというのを使えば、Controller内でもルートごとのロジックを記述することができます。
routes.phpに
Route::controller('/', 'RestfulController');
と記述して
app/controllers/RestfulController.phpに
<?php class RestfulController extends BaseController{ public function getIndex(){ return "get"; } public function postIndex(){ return "post"; } public function getYo(){ return "Yo"; } }
と記述すれば、
/にgetリクエストをした時は、get
/にpostリクエストをした時は、post
/yoにgetリクエストした時は、yo
それぞれの文字列を表示できます。
さらに詳しくはここに載ってます。
コントローラー