【发布时间】:2015-10-01 15:31:38
【问题描述】:
我有以下表格设置:
国家/地区(id)
语言(id)
country_languages(id、country_id、language_id)
在纯 SQL 中,我可以相当轻松地获取所有国家/地区及其相应的语言:
SELECT * FROM countries
INNER JOIN country_languages
ON country_languages.country_id = countries.id
INNER JOIN languages
ON languages.id = country_languages.language_id;
在Laravel(5)中,使用如下作品:
在国家模式中:
public function countryLanguages()
{
return $this->hasMany('CountryLanguage');
}
在 CountryLanguage 模型中:
public function language()
{
return $this->belongsTo('Language');
}
$countries = Country::with('countryLanguages.language');
我想要一个单一的关系方法languages,但是可以直接在Country 模型上调用。这可能吗?我已经尝试了hasManyThrough 和其他方法,但到目前为止没有运气!
【问题讨论】:
-
您不需要为多对多关系创建 CountryLanguage 模型。检查文档中的相应部分laravel.com/docs/5.0/eloquent#many-to-many
-
你说的是多对多关系,但你是在实现一对多
标签: php laravel eloquent laravel-5.1