Laravel过滤器,带有构造中的参数

时间:2013-03-14 03:11:51

标签: php laravel

我在Stack上搜索并看到了这个问题How to add filter parameters to controllers in Laravel?

我有一个类似的问题,但这一次,我需要传递一个灵活的$ myparam参数,代码看起来像吼叫:

在Route.php中

Route::filter('diffauthor',function($myparam){
    if(Authority::cannot('edit', 'postedit', $myparam))
                        return View::make('permdeny.index');
});

并在Controller中:

public function __construct() {
        parent::__construct();
        $this->filter('before','diffauthor', $myparam);
    }

如何根据用户请求传递$ myparam?

1 个答案:

答案 0 :(得分:3)

您只能将参数作为字符串传递给过滤器:

$this->filter('before', 'diffauthor:param1,param2');

有时为了解决这个限制,我使用Session类作为一种临时存储,甚至通过查看我的过滤器中Request::route()返回的对象来检查传递给方法的变量。