0
public function actionCheckout()
{
     echo "Hello World!";
}

コントローラーでこの非常に単純なコードを作成しましたが、URL で参照しようとすると、次のエラーが表示されます。

ここに画像の説明を入力

現在管理者としてログインしているにもかかわらず、なぜその非常に単純なコードにアクセスできないのでしょうか。

CRUD が生成した accessRules を投稿します。これが互いに関連しているかどうかはわかりませんが、この行を削除しようとすると、既にそのページにアクセスできます。

public function accessRules()
    {
        return array(
            array('allow',  // allow all users to perform 'index' and 'view' actions
                'actions'=>array('index','view'),
                'users'=>array('*'),
            ),
            array('allow', // allow authenticated user to perform 'create' and 'update' actions
                'actions'=>array('create','update'),
                'users'=>array('@'),
            ),
            array('allow', // allow admin user to perform 'admin' and 'delete' actions
                'actions'=>array('admin','delete'),
                'users'=>array('admin'),
            ),
            array('deny',  // deny all users
                'users'=>array('*'),
            ),
        );
    }

そのコードでチェックアウトが宣言されていないことがわかる場合は、問題ありません。

その理由は何だと思いますか?あなたの助けは非常に高く評価され、報われるでしょう!

ありがとう!:)

4

2 に答える 2

5

コントローラにアクセス ルールがある場合は、この「チェックアウト」アクションをそれらのルールに追加する必要があります。

accessRules() 関数で必要なアクセス レベルに「checkout」を追加する必要があります。誰でもアクセスできるようにする場合は、次のものが必要です。

        array('allow',  // allow all users to perform 'index' and 'view' actions
            'actions'=>array('index','view', 'checkout'),
            'users'=>array('*'),
        )

または管理者のみのアクセスの場合:

        array('allow',  // allow admin user access
            'actions'=>array('admin','delete','checkout'),
            'users'=>array('admin'),
        )
于 2012-08-25T08:03:01.517 に答える
1

1 か所で accessRules をポイントして「チェックアウト」する必要があります (許可されたすべてのアクションを設定しました)。

public function accessRules()
{
    array('allow',  // allow all users to perform 'index', 'view' and 'checkout' actions
        'actions'=>array('index','view', 'checkout'),
        'users'=>array('*'),
    ),
    array('allow', // allow authenticated user to perform 'create', 'update' and 'checkout'actions
        'actions'=>array('create','update','checkout'),
        'users'=>array('@'),
    ),
    array('allow', // allow admin user to perform 'admin','delete' and 'checkout' actions
        'actions'=>array('admin','delete','checkout'),
        'users'=>array('admin'),
    ),
    array('deny',  // deny all users
        'users'=>array('*'),
    ),
 }
于 2012-08-25T08:03:56.303 に答える