如何在yii2中覆盖控制器、模型和视图
如何在我的主题的配置中重写类模块?我尽了最大的努力如何在yii2中覆盖控制器、模型和视图,yii2,Yii2,如何在我的主题的配置中重写类模块?我尽了最大的努力 return [ ... 'modules' => [ 'shop' => [ 'class' => 'app\modules\shop\ShopModule', 'components' => [ 'manager' => [ 'class' => 'app\web\theme
return [
...
'modules' => [
'shop' => [
'class' => 'app\modules\shop\ShopModule',
'components' => [
'manager' => [
'class' => 'app\web\theme\modules\shop\Customer',
],
],
],
...
],
];
覆盖控制器
有时您可能需要覆盖默认的Yii2用户控制器。这非常简单,需要两个步骤。
步骤1:创建新控制器
首先,您需要在自己的命名空间下创建新的控制器(我们建议使用app\controllers\user),并从需要的Yii2用户控制器扩展它
例如,如果要覆盖AdminController,则应创建app\controllers\user\AdminController
并从devtrium\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
}
}
请进一步解释您的问题。例如:视图重新定义,模型失败。比您提出的问题更重要。什么不清楚?我在YII2上有一个网站。创建具有自己主题和配置的文件夹。配置覆盖了原始站点的提交。现在我需要覆盖你的主题中的一个类模块。对不起,我仍然完全不知道你想做什么,或者你想得到什么帮助。您试图覆盖什么?此功能模块YII2用户在通常的YII2中不受支持。问题解决了,所以,在他的主题的输入脚本中,他添加了:Yii::$classMap['app\modules\review\models\ModelName']='@app/web/theme/module/models/review/ModelName.php';
<?php return [
...
'modules' => [
...
'user' => [
'class' => 'dektrium\user\Module',
'controllerMap' => [
'admin' => 'app\controllers\user\AdminController'
],
...
],
...
],