查看:
<?= $form->field($model, 'password2')->passwordInput(['value'=>''])->label(Yii::t('app', 'Password2')) ?>
模型
Class Admin extends ActiveRecord implements IdentityInterface
{
public $password2;
public static function tableName() {
return 'app_users';
}
public function rules()
{
return [
[['fullname', 'username', 'password', 'password2', 'role_id'], 'required'],
['username', 'unique'],
['password2', 'compare', 'compareAttribute'=>'password', 'message'=>Yii::t('app', 'Passwords don\'t match') ],
[['role_id', 'alive'], 'integer'],
['image', 'file', 'extensions' => ['png', 'jpg', 'gif'], 'maxSize' => 1024 * 1024 * 2],
[['access_deadline'], 'safe']
];
}
我正在尝试保存模型,但是AN ERROR抛出:"Password2 is required!"
。如何绕过此错误并成功保存模型?
答案 0 :(得分:0)
您可以使用
成功绕过此错误保存模型$model->save(false);
以这种方式将值保存在inb db中而不执行验证
答案 1 :(得分:0)
如果我做对了,你的SQL DB中有字段Password2
,它是一个必需的列,这意味着你将无法在DB中保存任何模型,该字段为{{1即使你实际上并不需要它,也要在数据库中。
我看到它的方式,你有三个选择。
null
之前,您可以为$model->save()
字段提供您选择的值。 $model->password2
选项。但是,请在模型中保留所需的选项。这样您就不需要在数据库中使用它,但是您需要在表单中使用它,以检查用户是否正确输入了密码。 希望它有所帮助。祝好运!