在,yii2中,我想在一个表中插入sinlge行,在另一个表中插入多行
在,yii2中,我希望在一个表中插入sinlge行,以及在另一个表中插入具有相同id的多行在,yii2中,我想在一个表中插入sinlge行,在另一个表中插入多行,yii2,yii2-advanced-app,Yii2,Yii2 Advanced App,在,yii2中,我希望在一个表中插入sinlge行,以及在另一个表中插入具有相同id的多行 控制器代码-- $modelcid=$modeld->categoryid; $modelpc=$modeld->productcode; $modelqty=$modeld->qty; $arrayvalue[]=array('id'=>$modelcid,'pc'=>$modelpc,'qty'=>$modelqty); $i=0; foreach($arrayvalue作为$key=>$val){
控制器代码--
$modelcid=$modeld->categoryid;
$modelpc=$modeld->productcode;
$modelqty=$modeld->qty;
$arrayvalue[]=array('id'=>$modelcid,'pc'=>$modelpc,'qty'=>$modelqty);
$i=0;
foreach($arrayvalue作为$key=>$val){
$purchaseid=$modeld->purchaseid=$modelm->purchaseid;
$cid=$modeld->categoryid=$val['id'][$i];
$pc=$modeld->productcode=$val['pc'][$i];
$qty=$modeld->qty=$val['qty'][$i];
$comments=$modeld->comments=$modelm->comments;
如果($modeld->save()){
$i++;
}
}
“$modeld->save()”它只保存第一个条目。
属性\yii\db\ActiveRecord
确定:
调用save()
保存新记录时,此变量设置为false
,因此代码将在循环的第一次运行中创建记录,并在后续运行中更新记录
对于要保存的每条记录,需要将此变量显式设置为true
。您还需要取消设置主键字段:
foreach ($arrayvalue as $key => $val) {
$modeld->isNewRecord = true;
unset($modeld->id); //assuming `id` is your primary key field
...
或者,您可以在循环中使用$modeld
的新实例:
foreach ($arrayvalue as $key => $val) {
$modeld = new ModelD; //assuming your model class is ModelD
...
\yii\db\ActiveRecord
的属性确定:
调用save()
保存新记录时,此变量设置为false
,因此代码将在循环的第一次运行中创建记录,并在后续运行中更新记录
对于要保存的每条记录,需要将此变量显式设置为true
。您还需要取消设置主键字段:
foreach ($arrayvalue as $key => $val) {
$modeld->isNewRecord = true;
unset($modeld->id); //assuming `id` is your primary key field
...
或者,您可以在循环中使用$modeld
的新实例:
foreach ($arrayvalue as $key => $val) {
$modeld = new ModelD; //assuming your model class is ModelD
...