因为想用新的调整过的layout view,所以需要重写Customer的module文件。
Customer config如下:
appfront/config/fecshop_local_modules/Customer.php
return [
'customer' => [
'class' => 'appfront\local\local_modules\Customer\ModuleOverride',
'controllerMap' => [
'sourcing' => 'appfront\local\local_modules\Customer\controllers\SourcingController'
],
'params'=> [
... (省略了)
]
]
]
新建的ModuleOverride文件如下:
appfront/local/local_modules/Customer/ModuleOverride.php
namespace appfront\local\local_modules\Customer;
use fecshop\app\appfront\modules\AppfrontModule;
use Yii;
class ModuleOverride extends AppfrontModule
{
public $blockNamespace;
public function init()
{
// 以下代码必须指定
$nameSpace = __NAMESPACE__;
// 如果 Yii::$app 对象是由类\yii\web\Application 实例化出来的。
if (Yii::$app instanceof \yii\web\Application) {
// 设置模块 controller namespace的文件路径
$this->controllerNamespace = $nameSpace . '\\controllers';
// 设置模块block namespace的文件路径
$this->blockNamespace = $nameSpace . '\\block';
// console controller
//} elseif (Yii::$app instanceof \yii\console\Application) {
// $this->controllerNamespace = $nameSpace . '\\console\\controllers';
// $this->blockNamespace = $nameSpace . '\\console\\block';
}
//$this->_currentDir = __DIR__ ;
//$this->_currentNameSpace = __NAMESPACE__;
// 设置该模块的view(theme)的默认layout文件。
Yii::$service->page->theme->layoutFile = 'dashboard.php';
parent::init();
}
}
因为只是改了layout,所以view部分只建了新的layout view文件。
appfront/theme/addropshipping/theme01/layouts/dashboard.php
然后发现customer下的页面都显示404。后来试着新建了一个controller,因为新controller需要建相应的view,建完发现新controller的页面倒是都能正常打开(也是用的新的layout)。
不知道哪里的问题,谢谢