【问题标题】:Laravel 5 model relationship many to manyLaravel 5 模型关系多对多
【发布时间】: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 和其他方法,但到目前为止没有运气!

【问题讨论】:

标签: php laravel eloquent laravel-5.1


【解决方案1】:

感谢 geondri 将我推向正确的方向。 这就是我最终得到的,比我想象的要容易得多:

public function languages()
{
    return $this->belongsToMany('Language', CountryLanguage::getTableName());
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-12
    • 2017-05-25
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多