控制器中的 Yii2 行为不起作用
Yii2 behavior in controller don't work
我有正常工作的控制器,我想在其中附加基本身份验证行为。我将方法 behaviors()
添加到控制器,并在操作前添加 var_dump($this->behaviors);
。一切都是正确的。问题是 HttpBasicAuth
不适用于方法。
这是我的代码:
public function behaviors()
{
return [
'basicAuth' => [
'class' => \yii\filters\auth\HttpBasicAuth::className(),
'auth' => function ($username, $password) {
if (! $this->isValidUser($username, $password)) {
return User::findByUsername($username);
}
return false;
}
],
];
}
auth
参数应该是 basicAuth
数组的键:
public function behaviors()
{
return [
'basicAuth' => [
'class' => \yii\filters\auth\HttpBasicAuth::className(),
'auth' => function ($username, $password) {
// ...
}
],
];
}
http://www.yiiframework.com/doc-2.0/yii-filters-auth-httpbasicauth.html
伙计们,我解决了这个错误。
如果我们想调用行为并且我们的控制器中有 beforeAction 方法。
你的 beforeAction
应该是这样的。调用位于父 class.
的方法 beforeAction
中的行为的方法
public function beforeAction($event)
{
...
return parent::beforeAction($event);
}
我有正常工作的控制器,我想在其中附加基本身份验证行为。我将方法 behaviors()
添加到控制器,并在操作前添加 var_dump($this->behaviors);
。一切都是正确的。问题是 HttpBasicAuth
不适用于方法。
这是我的代码:
public function behaviors()
{
return [
'basicAuth' => [
'class' => \yii\filters\auth\HttpBasicAuth::className(),
'auth' => function ($username, $password) {
if (! $this->isValidUser($username, $password)) {
return User::findByUsername($username);
}
return false;
}
],
];
}
auth
参数应该是 basicAuth
数组的键:
public function behaviors()
{
return [
'basicAuth' => [
'class' => \yii\filters\auth\HttpBasicAuth::className(),
'auth' => function ($username, $password) {
// ...
}
],
];
}
http://www.yiiframework.com/doc-2.0/yii-filters-auth-httpbasicauth.html
伙计们,我解决了这个错误。
如果我们想调用行为并且我们的控制器中有 beforeAction 方法。
你的 beforeAction
应该是这样的。调用位于父 class.
beforeAction
中的行为的方法
public function beforeAction($event)
{
...
return parent::beforeAction($event);
}