我有CartController路由过滤器似乎只能在控制器上绑定或获取,我可以对"动作"?
进行身份验证过滤例如:
<?php
CartController extends BaseController {
public function getIndex() {
// not need filter
}
public function getList()
{
// not need filter
}
public function getCheck()
{
// need to filter
}
}
答案 0 :(得分:11)
您可以在Class构造函数中设置BaseController beforeFilter()Action,并将您想要过滤的Actions作为“only”键控数组作为第二个Argument传递。
$this->beforeFilter('filtername',
array('only' => array('fooAction', 'barAction')));
使用您的示例代码:
<?php
CartController extends BaseController {
public function __construct() {
$this->beforeFilter('filtername', array('only' =>
array('getCheck')));
}
public function getIndex() {
// not need filter
}
public function getList()
{
// not need filter
}
public function getCheck()
{
// need to filter
}
}
答案 1 :(得分:0)
似乎你想在同一个控制器中将RESTful和普通方法(get / post vs action)混合在一起,至少在Laravel 3中这是无法完成的。
对于过滤,您可以查看controller filters,您可以在其中为特定方法指定身份验证过滤器,或者采用其他方式从过滤器中排除某些方法。
答案 2 :(得分:0)
答案 3 :(得分:0)
我遇到了与资源控制器类似的问题,并且能够做到这一点:
$this->beforeFilter('admin', [ 'except' => ['index','show'] ]);