Laravel4、ルートのプレースフォルダー拘束を一度に指定する
タグ: Laravel4
(追記:この方法は公式ドキュメントに乗りました。正式な方法として安心して利用できます。)
グレートTipsを見つけました。まだ、試していませんが… :D
Laravelでは、ルート定義にプレースフォルダーを使用できます。(他のフレームワークでも、たいてい出来ます。)
Route::get('posts/{id}', 'PostController@getPost')->where('id', '\d+'); ...
人だけならともかく、ルート全部に付けるのは面倒です。そこで、パターンを使えるというお話。
Route::pattern('id', '\d+'); Route::get('posts/{id}', 'PostController@getPost'); ...
これでルートの中のid
が全部、整数で拘束されるということです。例えばidea/think
というようなidを含んだルートでもうまく動くかどうかは、まだチェックしていません。
リソースフルルートでも、このTipは使用出来るそうです。
Route::pattern('posts', '\d+'); Route::resource('posts', 'PostController');