Laravel可以和belongsToMany一起使用吗?

时间:2016-01-04 19:21:26

标签: laravel laravel-5 eloquent

假设我有两张桌子:

Users: id, name, country_id

Countries: id, name

当然,每个user只能有一个country,但每个country都会分配给多个users

那么使用User模型并使用hasOne方法的Country模型是否安全?

Documentation使您看起来无法混合和匹配不同类型的关系。

2 个答案:

答案 0 :(得分:3)

您所描述的实际上是One To Many关系,其中一个国家/地区拥有许多用户。您的Country模型应该使用hasMany关系,而您的用户可能会有belongsTo关系。

答案 1 :(得分:3)

@Andy已经回答得很好了 无论如何,我的建议是始终以下列方式思考创建One-To-OneOne-To-ManyMany-To-Many关系:

  • 表中使用外键(如果有)使用belongsTo
  • 在另一个表没有外键的情况下使用hasOnehasMany
  • 其中任何一个都有外键时,您有Many To Many关系,并且必须在它们中使用belongsToMany(当然,您需要数据透视表) )。