URL からワイルドカードをキャプチャし、最初にフィルターに渡してからコントローラーにルーティングしようとしています。質問を正確にプロットする方法はわかりませんが、これまでに試したことは次のとおりです。
Route::get('test/(:any?)', array('as' => 'testroute', 'uses' => 'test@result', 'before' => "test_filter:$1"));
Route::filter('test_filter', function($id = NULL)
{
if($id)
echo "This id is " . $id; // Prints "This id is $1"
});
と
Route::get('test/(:any?)', array('as' => 'testroute', function($id = NULL)
{
if($id)
echo "this id is " . $id; // Does not do anything
}, 'uses' => 'test@result'));
基本的には、URLにIDが付加されているかどうかを確認し、あればCookieを設定したいです。ただし、場合に関係なく、IDが追加されているかどうかに関係なく、このルートをコントローラーで処理したいと考えています。
非常に多くのルートで同じことをしなければならないので、コントローラーのコードを変更するよりも、フィルターのようなものを好むでしょう。
ワイルドカード要素をクロージャーに直接渡すか、これをパラメーターとして任意のコントローラーに渡すことができることはわかっていますが、その場合はコントローラーコードを変更する必要がありますが、現時点ではできません。
フィルターを通してそれを行うことはできますか? または、コントローラーコードを変更する必要がない他の方法はありますか?