【发布时间】:2014-12-25 04:37:33
【问题描述】:
我正在使用 Laravel 4 框架开发一个应用程序,我为我的应用程序开发了一个管理包,
问:
我怎样才能使一段代码对这个特定包的一个路由的每次调用都可执行?我应该把这段代码放在哪里?
【问题讨论】:
-
像辅助函数吗?
标签: laravel laravel-4 laravel-routing
我正在使用 Laravel 4 框架开发一个应用程序,我为我的应用程序开发了一个管理包,
问:
我怎样才能使一段代码对这个特定包的一个路由的每次调用都可执行?我应该把这段代码放在哪里?
【问题讨论】:
标签: laravel laravel-4 laravel-routing
使用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 来代替这个,因为这似乎是实际上您想要的,而不是“在命中这条路线时运行这段代码”。
在处理包时,通常您应该说“我希望在发生这种情况时运行此代码”,这将是一个事件。
【讨论】:
定义你的过滤器;
Route::filter('filter', function () {
// do stuff
});
或
Route::filter('filter', 'Vendor\Package\Filters\SomeFilter');
并附加到组,并像这样在其中定义您的路线;
Route::group(array('before' => 'filter'), function(){
//Define your routes here
});
【讨论】: