我不确定这样做的最好方法,所以将当前数据与数组进行比较就是我目前所处的目标。
我想让一组路由执行过滤器,然后根据路由获得与该过滤器不同的结果。
的内容if(in_array($currentRoute, $allowedRoutes){
do action1
}
else{
do action2
}
就uri而言,我有许多不同的可能性
Route::get('/content','ContentController@index')
Route::post('/dynamic/{dynamic}','DynamicController@store')
Route::delete('dynamic/{dynamic}/content/{content}','ContentController@destroy')
以上所有可能都有查询字符串,并且都有许多HTTP方法。最好的方法是什么?
答案 0 :(得分:2)
您可以为每个路由分配别名,以便您可以识别当前路径名称,而不管查询字符串。例如:
Route::get('/content', array('uses'=>'ContentController@index', 'as'=>'content'))
Route::post('/dynamic/{dynamic}', array('uses'=>'DynamicController@store', 'as'=>'dynamic.show'))
Route::delete('dynamic/{dynamic}/content/{content}', array('uses'=>'ContentController@destroy', 'as'=>'dynamic.destroy'))
现在在过滤器中,您可以执行以下操作:
$allowedRoutes = array('content');
$currentRoute = Route::currentRouteName();
if (in_array($currentRoute, $allowedRoutes)) {
// do action1
} else {
// do action2
}
请注意,此过滤器必须是after
过滤器,而不是before
过滤器。