Laravel Controller beforeFilter未按预期工作

时间:2014-09-30 18:50:35

标签: laravel laravel-4 laravel-routing

我的控制器构造函数看起来像

function __construct(MessageRepository $message)
{
    $this->beforeFilter('canViewThisMessage', array('only', 'show'));
    $this->message = $message;
    $this->pagesize = 8;
    $this->pageTitle = 'messages';
}

我希望过滤器应用于show动作。看起来像

public function show($id)
{
    $message = Message::findOrFail($id);

    return View::make('messages.show', compact('message'));
}

但过滤器适用于所有操作,而不仅仅是show方法!为什么会这样?

1 个答案:

答案 0 :(得分:1)

我认为不是:

$this->beforeFilter('canViewThisMessage', array('only', 'show'));

你应该使用:

$this->beforeFilter('canViewThisMessage', array('only' =>  ['show']));

$this->beforeFilter('canViewThisMessage', array('only' =>  'show'));

查看documentation