如何根据此样本数组的图像数量来循环和保存数据?
目的:
带有“0”(零)后缀的图像是主图像,应标记为“主图像”
$postdata = array
(
'key' => 'adsfasdf34234234235235c',
'source' => 1,
'maincategoryid' => 12,
'subcategoryid' => 34,
'userid' => 6,
'shopid' => 1,
'status' => 1,
'description'=> 'blah blah blah',
'image0' => 'blahbalh\big.jpg',
'image1' => 'hblahblah\smal1.jpg',
'image2' => 'flowers.jpg',
'image3' => 'leaf.jpg'
);
这是我的图像表格表字段
IMAGEID,USERID,SHOPID,IMAGEPATH,MAINIMAGE,STATUS
表格中的预期输入应基于上面的示例
IMAGEID,USERID,SHOPID, IMAGEPATH ,MAINIMAGE,STATUS
1 6 1 blahbalh\big.jpg 1 1
2 6 1 hblahblah\smal1.jpg 0 1
3 6 1 flowers.jpg 0 1
4 6 1 leaf.jpg 0 1
正如你可以看到数组键中带有零后缀的第一个图像,是列中有标记的主图像
我尝试使用foreach或for循环进行循环,但是当我应该保存4行数据时,我只能从该数组中保存1行数据
我试过这个
$mainimage = 0;
for($i=0; $i < count($postdata); $i++){
if(!isset($postdata['image'.$i])){
continue;
}
$shopmodel->USERID = $postdata['userid'];
$shopmodel->SHOPID = $postdata['shopid'];
$shopmodel->IMAGEPATH = $postdata['image'.$i];
$shopmodel->MAINIMAGE = $mainimage;
$shopmodel->STATUS = $postdata['status'];
if($i == 0 ){
$shopmodel->MAINIMAGE = 1;
}
$shopmodel->save();
}
我知道有一些问题,所以如何根据我的样本循环并实现该目标?
答案 0 :(得分:0)
您需要调试才能知道出了什么问题。例如。做
var_dump($postdata['image'.$i]);
之前
$shopmodel->USERID = $postdata['userid'];`
所以你会看到你的情况是否正常。
接下来考虑在循环中使用时重置模型:
$model()->unsetAttributes();
并检查此处或代码$shopsmodel
VS $shopmodel
答案 1 :(得分:0)
$ismain = 0;
$images = array();
for($i=0; $i < count($postdata); $i++){
if(!isset($postdata['image'.$i])){
continue;
}
array_push($images, $postdata['image'.$i]);
}
foreach($images as $key => $image){
if($key == 0){
$ismain = 1;
} else {
$ismain = 0;
}
echo "adid = ". $postdata['shopid']. "; ismain =" .$ismain."; image =". $image."<br/>";
}
自我注意:在实际的(真实的)应用程序代码中,我在foreach循环中实例化了模型,并初始化了相应的属性..然后调用了模型的save()函数和繁荣......我想要的输出,出现......感谢所有试图帮助我的人......但最后......我以自己的方式帮助自己。欢呼声