最近Laravelを使い始めていろいろと苦悩しています。
ドキュメントを読んでもさっぱりです。
言いたいことが伝わってきません。
まぁドキュメントについてはLaravelに限ったことではありませんけど…
で、本題です。
Laravelで特定のURLにはAuthとかもろもろ前処理をしたいときに
Route::filter('myFilter', function() {
// なんかのフィルタ処理
});
でフィルタを定義して、
Route::get('path', array('before' => 'myFilter'), function() {
return 'before filter!';
});
で、URLにフィルタを紐付けるわけです。
まぁこれをいろいろなURLでフィルタを使うときにこれを全部書くとかめんどくさすぎる。
一応まとめてやるには公式ドキュメントにはこんなサンプルコードがあるわけですが
Route::filter('myFilter', function()
{
//
});
Route::when('user/*', 'myFilter');
これだと、https://hoge.com/userにはフィルタがかからない。
あくまでhttps://hoge.com/user/以下に対してだけになる。
https://hoge.com/userにもフィルタをかけたい場合は
Route::when('user', 'myFilter');
Route::when('user/*', 'myFilter');
と、書けばいいんだけど、これはこれでなんか納得行かない
で、ものは試しにと
Route::when('user*', 'myFilter');
ってやったら、どっちにも対応した。
ただし、https://hoge.com/usersってのがあったらこれにもフィルタが掛かってしまう。
グルーピングを使ったほうが楽なんだろうか?
他にスマートな方法があったら教えて。
まぁこのブログには連絡先は書いてないわけだけど