2017-09-20 1 views
0

行を更新傾けること:ActiveRecordのは、私はテーブルの行を更新するとき、私はこのエラーを取得していますテーブルのただ一つの列を更新したい

public function actionAddNote(){ 

     $id = \Yii::$app->request->post('id'); 

     $model = MainRequest::findOne($id); 

     if ($model->load(\Yii::$app->request->post()) && $model->validate()) 
     { 
      if($model->update()){ 
       echo "1"; 
      }else { 
       print_r($model->getErrors()); 
      } 
     } 

     return $this->renderAjax('add-extra-note',['model' => $model]); 
    } 

Call to a member function load() on null 

これは私のアクションです私のモデル:

class MainRequest extends ActiveRecord { 

    public static function tableName() 
    { 
     return "main_request"; 
    } 


    public function behaviors() 
    { 
     return [ 
      DevNotificationBehavior::className(), 
     ]; 
    } 

    public function rules() { 

     return [ 
      [ 
       ['who_req', 
       'req_description', 
       'req_date', 
       'extra_note' 

      ], 'safe'] 
     ]; 

    } 

フォームが正しく表示されますし、私は私のテキストを見ることができますが、私はこれを提出するときにエラーが発生します。

<div> 

    <?php $form = ActiveForm::begin(); ?> 

<?= $form->field($model, 'extra_note')->textInput(); ?> 
<div class="form-group"> 
    <?= Html::submitButton('save', ['class' => 'btn green']) ?> 
</div> 

<?php ActiveForm::end(); ?> 

</div> 

誰も問題が何であるかを伝えることはできますか?ありがとうございました。

+0

、 $ idパラメータがnullでないことを確認してください。 –

+0

はい私は見ることができるので '$モデル= MainRequest :: findOne($ id)' 私のフォームの値は編集の準備ができています – moh

答えて

0

あなたはモデルが属性 にアクセスするためのロードモデルと使用をロードする必要があり、あなたがytheにアップデートするためのモデルを持っていますが、更新の呼び出しのためのモデルが必要d0n't初期の状況を管理すべきは、フォームなどをレンダリング:

機能またはYii2のupdateAttributes保存単純
public function actionAddNote(){ 

     $myModel = \Yii::$app->request->post(); 

     $model = MainRequest::findOne($myModel->id); 

     if (isset($model)){ 
     if ($model->load(\Yii::$app->request->post()) && $model->validate()) 
     { 
      if($model->update()){ 
       echo "1"; 
      }else { 
       print_r($model->getErrors()); 
      } 
     } 

     } else { 
     $model = new MainRequest(); 
     } 

     return $this->renderAjax('add-extra-note',['model' => $model]); 
    } 
0

使用:

パブリック関数actionAddNote()actionAddNoteにおいて{

$id = \Yii::$app->request->post('id'); 

    $model = MainRequest::findOne($id); 

    if ($model->load(\Yii::$app->request->post()) && $model->validate()) 
    { 
     if($model->**save**()){ 
      echo "1"; 
     }else { 
      print_r($model->getErrors()); 
     } 
    } 

    return $this->renderAjax('add-extra-note',['model' => $model]); 
} 
関連する問題