Yii2 dektrium为用户模型添加新字段并以帐户形式更改它

时间:2016-07-26 19:14:49

标签: yii2

我在用户模型中添加了一个新字段' 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字段时,它不会更改它。我该怎么做才能让它发挥作用? 感谢。

1 个答案:

答案 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]上创建要更改的视图文件并进行更改。