【问题标题】:Adding more filter options on route groups with Laravel 4使用 Laravel 4 在路由组上添加更多过滤器选项
【发布时间】:2013-01-10 19:25:43
【问题描述】:

我正在使用 postmarkapp 的入站服务在网络挂钩上接收 JSON 格式的电子邮件。 就我而言,我有一个接受 HTTP POST 来存储邮件的 EmailController。

设置如下:

Route::group(array('before' => 'auth'), function()
{
    Route::resource('emails', 'EmailController');
});

我需要路由组不过滤与控制器上的存储操作相关的 POST。 我试过使用:

array('before' => 'auth', 'except' => 'post')
array('before' => 'auth', 'except' => 'store')

所以我真的不确定在哪里执行此操作。也许在过滤器本身? 另外,做异常时我是使用动作名称还是 HTTP 动词?

作为额外的: 我也不完全愿意像那样向所有人开放路线行动。关于如何确保只有 postmarkapp 在那里发帖的任何想法?

谢谢!

【问题讨论】:

  • 我不确定,但也许你可以将POST相关的路由放在组外?

标签: php rest routes laravel laravel-4


【解决方案1】:

创建您自己的过滤器并为其添加适当的逻辑。例如:

Route::get('test', ['before' => 'foo']);

Route::filter('foo', function($route, $request) {

    if ($request->getClientIp() === 'xxx.xxx.xxx.xxx')
    {
            //...
    }

    if ($request->getMethod() === 'POST'))
    {
            //...
    }

});

```

您还可以为更复杂的过滤器创建过滤器类。阅读http://four.laravel.com/docs/routing#route-filters中的部分。

【讨论】:

    猜你喜欢
    • 2014-06-07
    • 2015-01-29
    • 2015-08-30
    • 2013-11-12
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    相关资源
    最近更新 更多