【问题标题】:yii2 I want to allow only index actionyii2 我只想允许索引操作
【发布时间】:2021-02-12 13:00:51
【问题描述】:

我试图通过使用这个行为()函数只允许索引操作 现在它也被拒绝索引

谁能解决并解释规则返回。

<?php

namespace api\modules\v1\controllers;

use yii\rest\ActiveController;
use yii\filters\AccessControl;

/**
 * Doctor Controller API
 */
class DoctorController extends ActiveController
{
    public $modelClass = 'api\modules\v1\models\Doctor';

    public function behaviors()
    {
        return [
            'access' => [
                'class' => \yii\filters\AccessControl::className(),
                'only' => ['index'],
                'rules' => [
                    [
                        'allow' => false,
                        'verbs' => ['POST']
                    ],
                    [
                        'allow' => true,
                        'actions' => ['index'],
                        'verbs' => ['GET'],
                        'roles' => ['?'],
                    ],
                    [
                        'allow' => true,
                        'roles' => ['?'],
                    ],
                    // everything else is denied
                ],
            ],
        ];
    }
}

【问题讨论】:

    标签: yii yii2-advanced-app yii2-basic-app


    【解决方案1】:

    看了资料才知道

    通过覆盖原始访问行为,它将决定任何未提及的内容为允许。

    因此,您只需要一个规则,即允许一个动作而不需要动词或角色,但如果您想对其进行更多限制,您可以这样做。

    <?php
    
    namespace api\modules\v1\controllers;
    
    use Yii;
    use api\modules\v1\models\Doctor;
    use yii\rest\ActiveController;
    
    /**
     * Doctor Controller API
     */
    class DoctorController extends ActiveController
    {
        public $modelClass = 'api\modules\v1\models\Doctor';
    
        public function behaviors()
        {
    
            $behaviors = parent::behaviors();
    
            $behaviors['access'] = [
                'class' => \yii\filters\AccessControl::className(),
                'rules' => [
                    [
                        // All actions
                        'allow' => true,
                        'actions' => ['index'],
                    ],
                ],
            ];
    
            return $behaviors;
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-05
      • 2017-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多