我在用户模型中添加了一个新字段' paypal'并需要在覆盖的帐户表单中更改它。
覆盖用户模型
<?php
namespace common\models;
class User extends \dektrium\user\models\User
{
public function scenarios()
{
$scenarios = parent::scenarios();
$scenarios['create'][] = 'paypal';
$scenarios['update'][] = 'paypal';
$scenarios['register'][] = 'paypal';
return $scenarios;
}
public function rules()
{
$rules = parent::rules();
$rules['paypalLength'] = ['paypal', 'string', 'max' => 255];
return $rules;
}
}
覆盖SettingsForm模型
<?php
namespace common\models;
class SettingsForm extends \dektrium\user\models\SettingsForm
{
public $paypal;
public function rules()
{
$rules = parent::rules();
$rules['paypalLength'] = ['paypal', 'string', 'max' => 255];
return $rules;
}
}
配置模块
'user' => [
'class' => 'dektrium\user\Module',
'modelMap' => [
'User' => 'common\models\User',
'RegistrationForm' => 'common\models\RegistrationForm',
'SettingsForm' => 'common\models\SettingsForm',
],
'controllerMap' => [
...
我已经覆盖了帐户表单视图。当我尝试更改用户/设置/帐户中的paypal字段时,它不会更改它。我该怎么做才能让它发挥作用? 感谢。
答案 0 :(得分:0)
此外,您必须覆盖view
路径:
'view' => [
'theme' => [
'pathMap' => [
'@dektrium/user/views' => '@app/views/user',
],
],
],
然后打开@vendor/dektrium/yii2-user/views
并根据@app/views
视图文件夹在dektrium
上创建一个文件夹。例如,创建一个名为admin
的文件夹(因为您在@vendor/dektrium/yii2-user/views
上有一个名为admin
的文件夹)并在应用视图上创建相应的文件夹,即@app/views/admin
。
之后,在@app/views/[dektrium-folder]
上创建要更改的视图文件并进行更改。