我安装了dektrium用户,但是当覆盖AdminController.php
并尝试触及admin/index
时,我得到的是Forbidden(403)
。将行为重写为:
'rules' => [
[
'allow' => true,
'roles' => ['?'],
],
],
错误仍然相同。这是因为我还没有任何角色。什么可以导致这种行为?我的目标是index.php
(dektrium\yii2-user
模块中的那个)。谢谢!
答案 0 :(得分:1)
您需要遵循这些规则来覆盖dektrium-user
的控制器 <强> directory structure
强>
如果您希望它进入前端,您可以更改以下内容,只需要更改起始文件夹
- backend
- controllers
- user
- AdminController
user
部分下module
模块的配置应如下所示
'modules' => [
..............
'user' => [
'controllerMap' => [
'admin' => 'backend\controllers\user\AdminController' ,
] ,
要使用新操作index
覆盖控制器,您的最小代码应如下所示
<强> AdminController
强>
<?php
namespace backend\controllers\user;
use dektrium\user\controllers\AdminController as BaseAdmin;
class AdminController extends BaseAdmin {
public function behaviors() {
$behaviours = parent::behaviors ();
$behaviours['access']['rules'][] = [
'allow' => true ,
'actions' => [ 'index' ] ,
'roles' => [ '?' ]
];
return $behaviours;
}
public function actionIndex(){
return $this->render('index');
}
}