2

CartController のルート フィルターは、コントローラーまたは get でしかバインドできないようですが、「アクション」で認証フィルターを実行できますか?

例えば:

<?php

CartController extends BaseController {

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

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

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

}
4

4 に答える 4

11

Class コンストラクターで BaseController beforeFilter() アクションを設定し、2 番目の引数として「唯一の」キー付き配列としてフィルター処理するアクションを渡すことができます。

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

}

ソース: Laravel Docs: コントローラ フィルタ

于 2013-09-19T09:19:42.067 に答える
0

RESTful と通常のメソッド (get/post とアクション) を同じコントローラーに混在させたいようですが、少なくとも Laravel 3 ではこれを行うことができませんでした。

フィルタリングについては、コントローラーフィルターを調べて、特定のメソッドの認証フィルターを指定したり、逆にフィルターから特定のメソッドを除外したりできます。

于 2013-09-01T04:58:29.687 に答える