2017-01-19 1 views
0

Ich möchte status = 1 mit dem Datensatz ID. Aber das funktioniert nicht.So aktualisieren Sie einzelnes Feld mit dem Senden ID

Ich sende die ID von der Indexseite (Bild unten).

enter image description here

public function actionConfirm($id) { 
     $model = $this->findModel($id); 

     $model->status = 1; 
     if ($model->save()) { 
      return $this->render('index'); 
     } else { 
      die('not work'); //this clause works 
     } 
    } 

Wie kann ich dies tun.

+0

Verwenden Sie AJAX, um Aktualisierungsanforderung zu senden, führen Sie es aus, und senden Sie das Ergebnis zurück an diese Ansicht. – Bizley

+0

Ich weiß nicht viel über Ajax, kannst du mir bitte zeigen, wie ich es machen muss? –

+0

Nicht wirklich, aber es gibt viele Beispiele im Internet, google es einfach. – Bizley

Antwort

1

Sie haben Probleme bei der Validierung.

können die Ursachen sein, zwei

  1. $model = $this->findModel($id) den Datensatz nicht finden können, die Sie für Sie durch die ID suchen
  2. Irgendwie in Ihrem db Datensätze speichern sind unvollständig und in die nicht gespeichert werden db.

Lösungen:

Erstens, weil Sie ein Update tun, empfehle ich Ihnen $model->update()method

Aber in beiden Fällen (update() oder speichern()) zu verwenden, wenn Sie wollen die Aktualisierung der Feldstärke sollten Sie auf $ runValidation Parameter falsch passieren

public function actionConfirm($id) { 
     $model = $this->findModel($id); 

     $model->status = 1; 
     if ($model->update(false)) { 
      return $this->render('index'); // now this works 
     } else { 
      die('not work'); 
     } 
    } 
1

Ihre Schaltfläche in Aktion Spalte Unter der Annahme Check genannt in Ihrer Aktion Spalte y ou könnte aufrufen

 ['class' => 'yii\grid\ActionColumn', 
      'template' => '{delete}{update}{viwq}{check}',    
      'buttons' => [ 
       'check' => function ($url, $model) { 
        return Html::a('<span class="glyphicon glyphicon-check"></span>', $url, [ 
        'title' => Yii::t('yii', 'Confirm'), 
        ]); 
       } 
      ], 
      'urlCreator' => function ($action, $model, $key, $index) { 
       if ($action === 'check') { 
        $url = Url::to(['/your-controller/confirm', 'id' =>$model->id]); 
       return $url; 
       } 
      } 
     ]    
    ], 
Verwandte Themen