如何覆盖我的主题配置中的类模块?我试过了,根本不可能。
return [
...
'modules' => [
'shop' => [
'class' => 'app\modules\shop\ShopModule',
'components' => [
'manager' => [
'class' => 'app\web\theme\modules\shop\Customer',
],
],
],
...
],
];
最佳答案
覆盖 Controller
有时您可能需要覆盖默认的 Yii2 用户 Controller 。这非常简单,只需两步。 第 1 步:创建新 Controller
首先,您需要在自己的命名空间下创建新的 Controller (我们推荐 app\controllers\user),并从所需的 Yii2-user Controller 扩展它。
例如,如果您想覆盖 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 步:将 Controller 添加到 Controller map
为了让 Yii2 用户了解您的 Controller ,您应该将其添加到 Controller 映射中,如下所示:
<?php return [
...
'modules' => [
...
'user' => [
'class' => 'dektrium\user\Module',
'controllerMap' => [
'admin' => 'app\controllers\user\AdminController'
],
...
],
...
],
对于覆盖 View click here
关于yii2 - 如何在 yii2 中覆盖 Controller 、模型、 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34411757/