Yii2 的一些笔记

behavior()方法

behaviors()是创建权限验证必不可少的方法,相当于一个拦截器。把那些没有该权限的人应用相关的方法里;

YII2 的授权(Authorization)

public function behaviors()
    {
        return [
            'bootstrap' => [//启动引导的相应格式
                [
                    'class' => 'yii\filters\ContentNegotiator',
                    'formats' => [
                        'application/json' => Response::FORMAT_JSON,
                        'application/xml' => Response::FORMAT_XML,
                    ],
                    'languages' => [
                        'en',
                        'de',
                    ],
                ],
            ],
           ],
            [
            'class' => 'yii\filters\AjaxFilter',//验证允许ajax执行的动作
            'only' => ['index'],
            'errorMessage'=>'Request must be XMLHttpRequest.'//当请求不是ajax请求是输出错误信息

            ],
            'access' => [    //behavior中的验证是否允许访问的认证类
                'except'=>['login'],//login不进行访问验证
                'only' => ['*'],//设置验证的动作方法‘*’,代表全部验证。
                #'only'=>['index','check','Add','confirm','del']//也可以写成这样
                'rules' => [//我们的验证规则,以数组形式,每一个数组代表一个验证规则
                    [
                        'allow' => false,//不允许
                        'roles' => ['?'],//?代表游客, @代表登录用户 如果为空,代表普遍适用。
                        'actions' => ['index']//设置验证的方法,因为这里的allow为false所以actions的方法都不能被游客访问。
                         'denyCallback'=>function($rule,$action)
                        {
                            return $this->redirect(['product/index']);
                        },//如果被拒绝访问,则会执行该匿名方法,该匿名方法可以获取两个值,$rule.$action 
                        'ips'=>'192.168.*'//表示该规则适用于192.168这个ip段,如为空则表示全部都适用

                    ],
                    [
                        'allow' => true,
                        'actions' => ['index', 'check', 'Add', 'Confirm'],
                        'roles' => ['@']
                    ]
                ]
            ]
        ];
    }

你可能感兴趣的:(Yii2 的一些笔记)