【问题标题】:Laravel eloquent relation multiple modelsLaravel 雄辩关系多模型
【发布时间】:2016-11-26 09:14:45
【问题描述】:

我有 4 种不同的型号。但是不要安静地抓住我应该使用的关系。 型号:CountyMunicipalityPostalZip。 在每个模型中正确设置了表和主键。

County 模型中我添加了:

public function municipality() {
    return $this -> hasMany('App\Municipality');
}

Municipality 模型中我添加了:

public function postal() {
    return $this -> hasMany('App\Postal');
}

Postal 模型中我添加了:

public function zip() {
    return $this -> hasMany('App\Zip');
}

我已经对此进行了测试: County::findOrFail(1)->municipality; 并且有效。 但是我如何获得属于该特定城市的邮件?

我不能这样做:County::findOrFail(1)->municipality->postal; 我认为我可以。但是我可以看到我还没有掌握它。

我该怎么做? 提前致谢。

数据库结构:http://pastebin.com/ts0D5juq

【问题讨论】:

    标签: php laravel eloquent relationship


    【解决方案1】:

    你错过了什么:

    County::findOrFail(1)->municipality;
    

    这里有县的municipality 字段而不是实际对象。

    你必须使用你的函数:

    County::findOrFail(1)->municipality()->postal();
    

    【讨论】:

    • 当我尝试使用上述(函数)时出现错误:Call to undefined method Illuminate\Database\Query\Builder::postal()
    • 试试这个:County::findOrFail(1)->municipality()->first()->postal()->first();
    • 谢谢!看起来这样就行了。所以我必须在每个关系方法之后使用first()
    • 这个使用 Laravel 查询系统,我建议你仔细阅读:laravel.com/docs/5.2/eloquent-relationships
    猜你喜欢
    • 2019-02-12
    • 2013-06-04
    • 1970-01-01
    • 2018-02-19
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 2019-07-16
    相关资源
    最近更新 更多