我正在使用Laravel 4框架开发应用程序,我为我的应用程序开发了一个管理包,
问:
如何为每个特定包的路由之一调用一段代码?我应该把这段代码放在哪里?
答案 0 :(得分:1)
使用route filter。
Route::filter('admin', function () {
// do stuff
});
或者,如果您希望将其从IoC容器中旋转出来:
Route::filter('admin', 'Vendor\Package\Filters\SomeFilter');
然后将其绑定在路线文件中:
Route::get("/admin", ["before" => "admin", "uses" => "SomeController@method"]);
虽然你应该考虑使用event handler而不是这个,因为它似乎实际你想要什么,而不是"当这个时运行这个代码路线被击中"。
通常你应该说"我希望在发生这种情况时运行此代码"在处理包时,这将是一个事件。
答案 1 :(得分:1)
将过滤器定义为;
Route::filter('filter', function () {
// do stuff
});
或
Route::filter('filter', 'Vendor\Package\Filters\SomeFilter');
并附加到群组,并在其中定义您的路线;
Route::group(array('before' => 'filter'), function(){
//Define your routes here
});