在 yii2 高级用户表中添加新列“名称”后,数据未保存在其中

Posted

技术标签:

【中文标题】在 yii2 高级用户表中添加新列“名称”后,数据未保存在其中【英文标题】:After adding new column "name" to user table in yii2 advanced, data not getting saved in it 【发布时间】:2015-12-16 14:28:05 【问题描述】:

将所有必需的值分配给用户模型(我也添加的列)之后。当我使用$model->save() 数据保存所有默认属性时,除了我添加的属性。我尝试通过 REST 调用插入。如果还有其他方法可以让我知道。我也关注了这个链接https://github.com/dektrium/yii2-user/blob/master/docs/adding-new-field-to-user-model.md,这是没有用的。

这是我在用户模型中的规则方法

public function rules()

    return [
        [['username', 'email'], 'filter', 'filter' => 'trim'],
        [['username', 'email', 'status','name'], 'required'],
        ['email', 'email'],
        ['username', 'string', 'min' => 2, 'max' => 255],

        // password field is required on 'create' scenario
        ['password', 'required', 'on' => 'create'],
        // use passwordStrengthRule() method to determine password strength
        $this->passwordStrengthRule(),

        ['username', 'unique', 'message' => 'This username has already been taken.'],
        ['email', 'unique', 'message' => 'This email address has already been taken.'],
    ];

谢谢。

【问题讨论】:

也许您忘记将新列添加到模型规则中?如果“名称”在规则中,请发布您的规则和其余代码。为什么选择 REST? 我正在通过 rest 调用通过 post 方法传递数据来注册用户 【参考方案1】:

我使用的用户模型从 UserIdentity 扩展 所以我在 UserIdentity 类中添加了规则方法,但是在向用户表添加新列之后,该列应该在用户模型的规则方法中指定,只有它可能会扩展。以前不需要这样添加,直到 Yii v2.1.0 可能在 Yii 2.2.0 中它必须是。

【讨论】:

以上是关于在 yii2 高级用户表中添加新列“名称”后,数据未保存在其中的主要内容,如果未能解决你的问题,请参考以下文章

如何在 laravel 中获取所有模型/迁移名称并添加单个新列

在附属机构中查找城市名称,并将它们与其对应的国家/地区添加到数据框的新列中

yii2如何环境部署?yii2高级模版安装教程

Yii2 高级应用,前端和后端的不同会话与子域

yii2_composer安装和改为国内源

Yii2 - 使用多个后端会话和cookie