我尝试使用Yii2进行简单的CRUD应用程序,但是当我尝试保存数据时,不会出现验证错误,$model->validate()
返回false。这是我的代码:
public function actionCreate()
{
$model = new Game();
if($model->load(Yii::$app->request->post()) && $model->save())
{
$this->redirect(['game-list']);
}
return $this->render('create', ['model' => $model]);
}
因此,$model->load()
返回true,这是我模型中的rules()
:
public function rules()
{
return [
[['title', 'subtitle', 'description'], 'required'],
[['id_type', 'is_active', 'picture'], 'default'],
];
}
我在DB中有七列(这个6 + id作为主键)。如果有人帮助我,我会很高兴。
UPD: 视图:
<? $form = ActiveForm::begin(array('options' => array('class' => 'form-horizontal'))); ?>
<?= $form->errorSummary($model); ?>
<?= $form->field($model, 'title')->textInput(); ?>
<?= $form->field($model, 'subtitle')->textInput(); ?>
<?= $form->field($model, 'description')->textInput(); ?>
<div class="form-actions">
<?= Html::submitButton(Yii::t('app', $model->isNewRecord ? 'Create' : 'Update')); ?>
</div>
<? ActiveForm::end(); ?>
答案 0 :(得分:5)
我的错误显然是愚蠢的,但现在确实如此。我在我的模型中创建了方法beforeSave
并且没有填充它并完全忘记了它的存在。所以,'因为它没有返回true - validate()
无法正常传递。对不起浪费时间。