如何在数据库Laravel中联接两个表

时间:2019-06-30 00:14:25

标签: php mysql laravel laravel-5 eloquent

我正在尝试连接两个表(产品表和图像表),因此在产品表中每个产品都有多个图像(存储在名为image的行中),因此我想在{{1}中显示每个产品的图像}。在图像表中,我在产品表上有一个名为images table的引用(id)的外键,问题是它不能在图像表中存储图像,(它一直将图像存储在产品表的行(图像)中) 。我该如何解决?

代码

Product.php

product_id

Image.php

public function images()
 {
   return $this->hasMany('App\Image', 'product_id');
 }

控制器

public function product()
{
  return $this->belongsTo('App\Product','product_id');
 }

将提供任何帮助。

1 个答案:

答案 0 :(得分:1)

如果您试图将图像保存到图像表中,而是“它一直将图像存储在产品表中的行(图像)中”,那么您将保存错误的项目。您似乎具有正确的结构-模型中有一对多的结构。只需保存图片而不是产品

类似将解决此问题:

Image::create(['whateverYouNeedToSave', 
              'product_id'=>$product_id,      <-- Connect the product here, within the image
              'etc']);

实际上可以通过创建产品,然后将图像保存为关系来实现,但这可能不是构造此过程的最干净/最简单的方法-建议您先保存图片,因为其中有很多,而一次只能保存一个产品。然后,在此方法奏效且清晰/舒适之后,如果需要,您可以尝试更“高级”的方法。