yii2不保存所有字段

问题描述 投票:0回答:1

我有这个用户模型:

  public $id;
    public $username;
    public $name;
    public $password;
    public $authKey;
    public $accessToken;

和此表单模型

  class SignupForm extends Model

{
    public $username;
    public $name;
    public $email;
    public $password;
    public $fio;
    public $phone;

并且我尝试保存:

$user = new User();
            $user->username = $this->username;
            $user->name = $this->name;
            $user->email = $this->email;
            var_dump($this->username);
            var_dump($user->username);
            var_dump($this->name);
            var_dump($user->name);

            $user->save(false);

但是在数据库表中,这仅保存电子邮件字段。 var_dump中的所有数据均正确。

php yii2 yii2-model yii2-formwizard
1个回答
0
投票

来自here

结果是,如果您在ActiveRecord中声明公共属性,模型中,它们遮盖了AR创建的自动属性。数据已分配给您的晦涩属性,但未发送进入数据库。

您还可以使用模型的attributes()函数来声明模型字段,并使用rules()函数对字段进行验证。

示例:

public function attributes()
{
    return [
        'id',
        'username',
        'name',
        'email',
    ];
}

public function rules()
{
    return [
        ['id', 'safe'],
        [['username', 'name', 'email'], 'required'],
        [['username', 'name', 'email'], 'string'],
    ];
}

有关更多信息和示例,请查看documentation

© www.soinside.com 2019 - 2024. All rights reserved.