昨天发了一个帖子同步到微博时,同步过去的微博配图却是重复的,今天跟了下代码,终于找到问题所在了。
打开opensns\Application\Forum\Controller\IndexController.class.php找到以下代码:
if(!isset($result_id)||!$result_id){ $path = $arr['1'][$i]; $result_id = D('Home/Picture')->where(array('path' => $path))->getField('id'); if (!$result_id) { $result_id = D('Home/Picture')->add(array('path' => $path, 'url' => $path, 'status' => 1, 'create_time' => time())); } }
这个$result_id就是通过图片路径从db中查出的图片id的值,上面是说如果$result_id有值就不进行查找了,所以只会查找一次,进而就会将第一张图的id重复拼接作为微博配图,这就是为啥图会重复了。
解决方法:
找到原因,解决办法就很简单了,我们在for循环里每次都初始化一下$result_id就ok了。
if(isset($result_id)){ unset($result_id); }
请登录后评论~