drz73366
2014-10-31 13:11
浏览 371
已采纳

Yii2将模型保存到数据库

I'm trying to do simple CRUD application with Yii2, but when I'm trying to save data, no validation errors appears and $model->validate() returns false. Here's my code:

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]);
}

So, $model->load() returns true and here is my rules() in my model:

public function rules()
{
    return [
        [['title', 'subtitle', 'description'], 'required'],
        [['id_type', 'is_active', 'picture'], 'default'],
    ];
}

I have seven columns in DB (this 6 + id as a primary key). I will be glad if anyone help me.

UPD: View:

<? $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(); ?>

图片转代码服务由CSDN问答提供 功能建议

我正在尝试用Yii2做简单的CRUD应用程序,但是当我试图保存数据时,没有验证 出现错误, $ model-&gt; validate()返回false。 这是我的代码:

  public function actionCreate()
 {
 $ model = new Game(); 
 if($ model-&gt; load(Yii ::)  $ app-&gt; request-&gt; post())&amp;&amp; $ model-&gt; save())
 {
 $ this-&gt; redirect(['game-list']); 
}  
返回$ this-&gt; render('create',['model'=&gt; $ model]); 
} 
   
 
 

所以, $ model-&gt; load()返回true,这是我模型中的 rules()

 公共函数规则 ()
 {
返回[
 [['title','subtitle','description'],'required'],
 [['id_type','is_active','picture'],'default  '],
]; 
} 
   
 
 

我在DB中有七列(这个6 + id作为主键)。 如果有人帮助我,我会很高兴。

UPD: 查看:

 &lt;?  $ form = ActiveForm :: begin(array('options'=&gt; array('class'=&gt;'form-horizo​​ntal')));  ?&gt; 
&lt;?= $ form-&gt; errorSummary($ model);  ?&gt; 
&lt;?= $ form-&gt; field($ model,'title') - &gt; textInput();  ?&gt; 
&lt;?= $ form-&gt; field($ model,'subtitle') - &gt; textInput();  ?&gt; 
&lt;?= $ form-&gt; field($ model,'description') - &gt; textInput();  ?&gt; 
&lt; div class =“form-actions”&gt; 
&lt;?= Html :: submitButton(Yii :: t('app',$ model-&gt; isNewRecord?'创建':'更新'  ));  ?&GT; 
&LT; / DIV&GT; 
&LT ;? 的ActiveForm ::端();  ?&gt; 
   
 
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dsvf46980 2014-11-03 06:52
    已采纳

    My mistake was obviously stupid, but here it is. I've created method beforeSave in my model and haven't filled it and totally forgot about it's existence. So, 'cause it's not returned true - validate() cannot pass properly. Sorry for wasted time.

    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题