【发布时间】:2019-03-19 07:22:27
【问题描述】:
如果这个问题过于具体,我提前道歉,但我很难在这两个模型之间选择正确的雄辩关系。我有两个模型,一个名为“Package”(例如旅行套餐),另一个名为“Country”。一个包只能有一个国家,一个国家可以有多个包。这是我的关系:
class Package extends Model
{
public function country()
{
return $this->belongsTo('App\Country');
}
}
// Country
class Country extends Model
{
public function packages()
{
return $this->hasMany('App\Country');
}
}
这是正确的关系吗?当我使用以下关系并想使用以下代码获取包含国家/地区信息的软件包集合时:
$packages = Package::with('country')->get();
我在国家/地区的回复中收到NULL。我做错什么了吗?感谢您的帮助。
PS:这是我的数据库结构:
Country:
`id`
`iso_code`
`name`
`phone_code`
Package:
`id`
`title`
`description`
`date_from`
`date_to`
`price`
`country_id`
【问题讨论】:
-
你的两个表的数据库表结构是什么样的?
-
@DelenaMalan 我已经编辑了我的问题并添加了表格的结构
-
在您的 Country 类中,您必须删除 Country 方法。在那个类中,您需要调用 Package,因为它是一个“有很多”关系,所以最好将它写成复数 'Packages',这样你就知道它返回多个包。
标签: laravel eloquent laravel-5.7 eloquent-relationship