为每个Laravel4包调用运行一个脚本

时间:2014-10-29 12:55:40

标签: laravel laravel-4 laravel-routing

我正在使用Laravel 4框架开发应用程序,我为我的应用程序开发了一个管理包,
问:
如何为每个特定包的路由之一调用一段代码?我应该把这段代码放在哪里?

2 个答案:

答案 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

});