yii2不保存所有字段

时间:2020-05-04 19:19:35

标签: php yii2 yii2-model

我有这个用户模型:

  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中的所有数据都是正确的。

1 个答案:

答案 0 :(得分: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

相关问题