Yii2将模型保存到数据库

时间:2014-10-31 13:11:33

标签: php activerecord yii2

我尝试使用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(); ?>

1 个答案:

答案 0 :(得分:5)

我的错误显然是愚蠢的,但现在确实如此。我在我的模型中创建了方法beforeSave并且没有填充它并完全忘记了它的存在。所以,'因为它没有返回true - validate()无法正常传递。对不起浪费时间。