簡體   English   中英

用一種視圖更新兩個模型在Yii中不起作用?

[英]Update two models with one view not working in Yii?

有人可以幫我解決我的問題嗎? 我可以創建新記錄,但不能修改或更新現有記錄。

這是我的源代碼:

public function actionCreate() {
    $model = new Branchmaster;
    $user = new Usermaster;
    if(isset($_POST['Branchmaster'], $_POST['Usermaster'])) {
      $model->attributes=$_POST['Branchmaster'];
      $user->attributes=$_POST['Usermaster'];
      $valid=$model->validate();
      $valid=$user->validate() && $valid;
      if($valid){
         $model->save();
         $chnuser->save();                   
         $this->redirect(array('view','id'=>$model->Id));
      }
    }
    $this->render('create',array(
      'model'=>$model,
      'user'=>$user,
    ));
  }

  public function actionUpdate($id) {
    $model=$this->loadModel($id);
    $user = Usermaster::model()->findByAttributes(array('branch_id'=>$model->Id));
    if(isset($_POST['Branchmaster'], $_POST['Usermaster'])) {
      $model->attributes=$_POST['Branchmaster'];
      $user->attributes=$_POST['Usermaster'];

      $valid=$model->validate();
      $valid=$user->validate() && $valid;
      if($valid){
        $model->save();
        $user->save();
        $this->redirect(array('view','id'=>$model->Id));
      }
    }
    $this->render('update',array(
      'model'=>$model,
      'user'=>$user,
    ));
  }

我需要這個問題的幫助...預先感謝!

而不是找到'findByAttr',所以它將是

//請注意$ id必須是此特定模型的主鍵

$user = Usermaster::model()->findByPk($id);

//如果情況不允許使用主鍵,則可以執行查詢

$update = Yii::app()->db->createCommand()
->update('usermaster', array('field1'=>'value','field2'=>'value2'),
'branch_id=:id',array(':id'=>$branch_id));

您必須檢查ID是否已退出,而不是必須進行更新...

使用findByPk加載模型...

比上面相同的過程是示例代碼。 你必須像這樣實現

         $model->attributes=$_POST['Branchmaster'];
         $user_post = $_POST['Usermaster'];
         $id = $user_post['id'];
         $user =  ModelName::model()->findByPk($id); 
         $user->variable_name = $variable_value


         $valid=$model->validate();
         $valid=$user->validate() && $valid;
         if($valid){
             $model->save();
             $user->save();
             $this->redirect(array('view','id'=>$model->Id));
         }

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM