Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更新两个模型,其中一个视图在Yii中不工作?_Php_Yii - Fatal编程技术网

Php 更新两个模型,其中一个视图在Yii中不工作?

Php 更新两个模型,其中一个视图在Yii中不工作?,php,yii,Php,Yii,有人能帮我解决我的问题吗?我可以创建新记录,但不能修改或更新现有记录 以下是我的源代码: public function actionCreate() { $model = new Branchmaster; $user = new Usermaster; if(isset($_POST['Branchmaster'], $_POST['Usermaster'])) { $model->attributes=$_POST['Branchmaster'];

有人能帮我解决我的问题吗?我可以创建新记录,但不能修改或更新现有记录

以下是我的源代码:

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”,以便

//请注意tht$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));
         }

感谢

尝试使用$model->getErrors()和$user->getErrors()检查错误,其显示消息-'Array',您需要使用CVarDumper::dump($model->getErrors(),10,true)转储它@Letmesee嘿非常感谢你的帮助。。。现在我完成了:)…你的欢迎好友:)验证有问题吗嘿,谢谢你的代码。。。但是我已经做到了。。我在一些相关的数据类型上出错了…嘿,谢谢你的代码。。。但是我已经做到了。。我有一些数据类型相关的错误。你能正确地输入吗。发生了哪种类型的错误…?实际上我有字段状态,它是int类型,但可能是默认存储为字符串。。