我安装了dektrium用户,但是当重写AdminController.php并试图到达admin/index时,我得到的是Forbidden(403)。将行为重写为:
'rules' => [
[
'allow' => true,
'roles' => ['?'],
],
],错误仍然是一样的。这么做是因为我还没有任何角色。是什么导致了这种行为?我的目标是原版index.php ( dektrium\yii2-user模块中的)。谢谢!
发布于 2018-04-08 12:11:49
您需要遵循这些规则来覆盖dektrium-user的控制器。
directory structure
如果您想要将其放入前端,则可以更改以下内容,只需更改启动文件夹
- backend
- controllers
- user
- AdminControlleruser模块在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');
}
}https://stackoverflow.com/questions/49712480
复制相似问题