您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

yii2 多表插入数据

2024/3/29 11:45:25发布11次查看
有人实现过多表插入数据吗?
if(yii::$app->request->ispost){ if(yii::$app->request->post('test') && $this->test->load(yii::$app->request->post()) && $this->test->save($data)){ // var_dump($this->dish->save());exit; 始终 是false if(yii::$app->request->post('dish') && $this->dish->save()){ return $this->render('index',[ 'test' => $this->test, 'dish' => $this->dish, ]); }else{ var_dump($dish); // 接受的是有值的 var_dump($this->dish->geterrors()); // 接受的是空值 } }else{ var_dump($this->test->geterrors()); } }else{ return $this->render('index',[ 'test' => $this->test, 'dish' => $this->dish, ]); }

这样是不行的吗?
回复内容: 有人实现过多表插入数据吗?
if(yii::$app->request->ispost){ if(yii::$app->request->post('test') && $this->test->load(yii::$app->request->post()) && $this->test->save($data)){ // var_dump($this->dish->save());exit; 始终 是false if(yii::$app->request->post('dish') && $this->dish->save()){ return $this->render('index',[ 'test' => $this->test, 'dish' => $this->dish, ]); }else{ var_dump($dish); // 接受的是有值的 var_dump($this->dish->geterrors()); // 接受的是空值 } }else{ var_dump($this->test->geterrors()); } }else{ return $this->render('index',[ 'test' => $this->test, 'dish' => $this->dish, ]); }

这样是不行的吗?
这样肯定不行。
关键是这个地方:$this->test->load(yii::$app->request->post())
你的一个post过来的form只可能对应一种model,不可能一个form对应好几个不同的model,所以你既然用test这个model load了所有post的内容,不能再用dish去再load一遍。
如果你的form里混杂了来自于两个不同model的字段,那么你还是需要指定一个为主model,在这个主model里增加一些虚拟的属性,在load后临时存放一下,然后new一个model出来,把这些临时存放的属性值放到新model里去,然后save
用事务吧!
post过来的数据要根据模型区分
如:
post:{
'test' : { 'id' : 1, 'name' : 'kama'},'dish' : { 'did' : 1, 'dname' : 'abc'}
}
开启事务 :
$data = yii::$app->request->post();
if(!empty($data['test']) && !empty($data['dish']))
{
$transaction = \yii::$app->db->begintransaction();try { $test = new test(); $test->load($data); if($test->save()) { #save dish $transaction->commit(); } else { $transaction->rollback(); }} catch(exception $e) { # 回滚事务 $transaction->rollback();}
}
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product