2016-07-22 200 views
0

我有4个不同的模型。但是,不要安静地处理我应该使用的关系。 型号:CountyMunicipality,PostalZip。 在每个模型中正确设置表和主键。Laravel雄辩的关系多个模型

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

回答

0

你错过了一些东西:

County::findOrFail(1)->municipality; 

这里有县municipality领域而不是实际的对象。

你必须使用你的函数:

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

当我尝试使用上述(功能)我得到一个错误: '调用未定义的方法照亮\数据库\查询\生成器::邮政() ' – Kaizokupuffball

+0

试试这个:'County :: findOrFail(1) - > municipality() - > first() - > postal() - > first();' – Vuldo

+0

谢谢!看起来这样做的窍门。所以我必须在每个关系方法之后使用'first()'? – Kaizokupuffball