如何在Laravel中对指定的控制器操作进行过滤

Cha*_*han 2 php laravel

我有CartController路由过滤器似乎只能在控制器上绑定或获取,我可以对"动作"进行身份验证过滤吗?

例如:

<?php

CartController extends BaseController {

    public function getIndex() {
        // not need filter
    }

    public function getList()
    {
        // not need filter
    }

    public function getCheck()
    {
        // need to filter
    }

}
Run Code Online (Sandbox Code Playgroud)

Sas*_*ber 11

您可以在类构造函数中设置BaseController beforeFilter()Action,并将要过滤的Actions作为"only"键控数组作为第二个Argument传递.

$this->beforeFilter('filtername', 
                    array('only' => array('fooAction', 'barAction')));
Run Code Online (Sandbox Code Playgroud)

使用您的示例代码:

<?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
    }

}
Run Code Online (Sandbox Code Playgroud)

来源:Laravel文档:控制器过滤器