2016-04-14 25 views
0
public function actionCreate() 
     { 
      $model = new CreateBookings(); 

      if ($model->load(Yii::$app->request->post())) { 
       $imageName = $model->first_name; 
       $mobile = $model->primary_mobile; 
       $type  = $model->room_type; 

       $model->file = UploadedFile::getInstance($model, 'file'); 
       $model->file->saveAs('uploads/id_images/' . $imageName . '_' . $mobile . '.' . $model->file->extension); 
       //save the path in the db column 
       $model->id_image = 'uploads/id_images/' . $imageName . '_' . $mobile . '.' . $model->file->extension; 
       $model->save(); 



       return $this->redirect(['view', 'id' => $model->id]); 
      } else { 
       return $this->render('create', [ 
        'model' => $model, 
       ]); 
      } 

     } 

Model-> save(); \Yii::$app->db->createCommand("UPDATE room_types SET total_booked = total_booked + 1 WHERE room_type = '$model->room_type' ")->execute(); sorgusunu yürütmem gerekiyor.Yii2: Modelden sonra sql sorgusu nasıl çalıştırılır -> save()

aynı sorgu actionupdate() içinde değil ama actioncreate() içinde çalışan, Bu davranışlarla mümkün mü?

cevap

1

Sen ActiveRecord ait afterSave yöntemini geçersiz veya db doğrudan

Belgeleri bir tetikleyici oluşturabilirsiniz: http://www.yiiframework.com/doc-2.0/yii-db-baseactiverecord.html#afterSave%28%29-detail

public function afterSave($insert, $changedAttributes) 
{ 
    parent::afterSave($insert, $changedAttributes); 

    // your code here 
    Yii::$app->db->createCommand(sprintf("UPDATE room_types SET total_booked = total_booked + 1 WHERE room_type = '%s'", $this->room_type))->execute(); 

} 
+0

Eğer 'afterSave' yöntemini geçersiz kılmak göstermek lütfen? – JKLM

+0

Cevabın –

+0

alma hatası Tanımsız değişken kaydetmiştiniz: changeAttributes – JKLM