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
中的相應章節,您正在談論多對多關係,但您正在實施一對多 –