在Laravel中具有hasOne或BelongsTo吗?

时间:2018-11-15 23:19:16

标签: laravel laravel-5

我有两个表:PhotosProductPhotos,其中ProductPhotos是:

ProductPhotos
_______________
product_id | photo_id

Photos是:

Photos
_______________
id | photo

这是否意味着ProductPhotos -> Photos之间还是belongsTohasOne之间的关系?

因为photo_id是外键,我想它是belogsTo

3 个答案:

答案 0 :(得分:2)

belongsTo用于定义hasOne(一对一)和具有Many(一对多)关系的逆关系。不可能用外键分辨出这种关系。您需要在相关模型中定义关系。

就您而言,关系可以

  1. 产品照片属于产品
  2. 产品可以与productPhotos具有hasOne或hasMany关系。取决于产品模型上定义的关系

您可以详细了解laravel文档Relationships

上的关系

答案 1 :(得分:1)

我会与 照片->有一个->产品照片->属于->产品 产品->有很多->产品照片->属于->照片

这将允许使用Associate&Disassociate以及hasManyThrough关系

https://laravel.com/docs/5.5/eloquent-relationships#has-many-through

这还取决于您对产品图像的使用

希望这会有所帮助

答案 2 :(得分:-2)

在这种情况下,这意味着您有一个Products表,因此您的关系似乎是多对多的。

在两个表中使用:

belongsToMany

https://laravel.com/docs/5.7/eloquent-relationships#many-to-many