2014-09-30 40 views
0

我控制器構造看起來像Laravel控制器beforeFilter不工作

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

,我希望在表演的動作要應用的過濾器。它看起來像

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

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

但過濾器被應用在所有的行動,而不僅僅是展示方法!這是爲什麼發生?

回答

1

我認爲不是的:

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

你應該使用:

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

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

看着documentation

+0

我覺得愚蠢!這工作! – brainless 2014-09-30 19:15:44

+0

@brainless放鬆沒有人知道一切,有時你可能會錯過簡單的解決方案 – 2014-09-30 19:18:27