1
我有以下表设置:Laravel 5模型关系多对多
国家(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模型的多对多关系。请查看文档http://laravel.com/docs/5.0/eloquent#many-to-many – geoandri
中的相应章节,您正在谈论多对多关系,但您正在实施一对多 –