如何覆盖主题配置中的类模块?我试过这么不可能。
return [
...
'modules' => [
'shop' => [
'class' => 'app\modules\shop\ShopModule',
'components' => [
'manager' => [
'class' => 'app\web\theme\modules\shop\Customer',
],
],
],
...
],
];
答案 0 :(得分:2)
覆盖控制器
有时您可能需要覆盖默认的Yii2用户控制器。这很简单,需要两个步骤。 第1步:创建新控制器
首先,您需要在自己的命名空间下创建新控制器(我们推荐app \ controllers \ user)并从所需的Yii2用户控制器扩展它。
例如,如果要覆盖AdminController,则应create app\controllers\user\AdminController
并对其进行扩展from dektrium\user\controllers\AdminController:
<?php
namespace app\controllers\user;
use dektrium\user\controllers\AdminController as BaseAdminController;
class AdminController extends BaseAdminController
{
public function actionCreate()
{
// do your magic
}
}
步骤2:将控制器添加到控制器地图
要让Yii2用户了解您的控制器,您应该将其添加到控制器地图中,如下所示:
<?php return [
...
'modules' => [
...
'user' => [
'class' => 'dektrium\user\Module',
'controllerMap' => [
'admin' => 'app\controllers\user\AdminController'
],
...
],
...
],
覆盖视图click here