我有发布表和图片表,这些表有一对多关系。
发布模型代码
public function images()
{
return $this->hasMany('App\PostImage');
}
我从用户那里获取3张图片,我想将它们插入带有帖子ID的图片表中。
例如
firstImage.jpg ,帖子ID 1
secondImage.jpg ,帖子ID 1
thirdImage.jpg ,帖子ID 1
问题是
如何在三列
中同时插入ID为1的三张图片我尝试了什么
我已经制作了一个在表格中插入3次的for循环,但我知道这不是一个好习惯,这是代码。
for($x = 0; $x < 3; $x++) {
$image = new PostImage;
$image -> post_id = $ad -> id;
$image -> image = $images_name[$x];
$image -> save();
}
答案 0 :(得分:1)
如果您只需要插入3张图像,这种方法没有任何问题。但是,如果要插入数百个图像,我建议您使用insert()
方法,该方法只创建一个查询,而不是创建100个查询以插入100个图像:
$array = [];
foreach ($images_name as $name) {
$array[] = ['post_id' => $ad->id, 'image' => $name];
}
PostImage::insert($array);