我有以下表格设置:
国家/地区(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
和其他方法,但到目前为止还没有运气!
答案 0 :(得分:0)
感谢geondri让我朝着正确的方向前进。 这就是我最终得到的,这比我想象的容易得多:
public function languages()
{
return $this->belongsToMany('Language', CountryLanguage::getTableName());
}