【问题标题】:makes a script run for every call to a package Laravel4每次调用包 Laravel4 都会运行一个脚本
【发布时间】:2014-12-25 04:37:33
【问题描述】:

我正在使用 Laravel 4 框架开发一个应用程序,我为我的应用程序开发了一个管理包,
问:
我怎样才能使一段代码对这个特定包的一个路由的每次调用都可执行?我应该把这段代码放在哪里?

【问题讨论】:

  • 像辅助函数吗?

标签: laravel laravel-4 laravel-routing


【解决方案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 来代替这个,因为这似乎是实际上您想要的,而不是“在命中这条路线时运行这段代码”。

在处理包时,通常您应该说“我希望在发生这种情况时运行此代码”,这将是一个事件。

【讨论】:

    【解决方案2】:

    定义你的过滤器;

    Route::filter('filter', function () {
        // do stuff
    });
    

    Route::filter('filter', 'Vendor\Package\Filters\SomeFilter');
    

    并附加到组,并像这样在其中定义您的路线;

    Route::group(array('before' => 'filter'), function(){
    
        //Define your routes here
    
    });
    

    【讨论】:

    • 答案不应依赖于其他答案,并且应该是独立的。
    猜你喜欢
    • 2013-08-20
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 1970-01-01
    • 2013-07-07
    • 2013-01-17
    相关资源
    最近更新 更多