如何使用模型以雄辩的方式连接三个表

时间:2017-07-04 18:12:56

标签: php sql laravel eloquent

我从未研究过Eloquent。我正在研究API,我想尽可能地获取一些数据,而不是编写sql,我通常做什么。

我有表格:“房子”与“公告”(一对一)相关,“公告”表与“广告客户”(一对多)有关。

当我尝试

User::getById($id) -> sendNotification($param1, $param2, ...)

我收到错误:公告未定义方法。 我认为我正确地建立了模型上的关系,所以我没有在这里包含它们。我想使用模型House加入,因为我在使用Eloquent时没有使用默认连接。

2 个答案:

答案 0 :(得分:0)

必须首先放置

with(),并在数组中指定您的关系(如果加载多个)

$house = \App\House::with(['announcement', 'advertiser'])->where('house_id', $id)->first();

修改: 对不起,我还没有看到它是一个嵌套的关系 您可以使用此代码而不是上述代码:

$house = \App\House::with(['announcement', 'announcement.advertiser'])->where('house_id', $id)->first();

答案 1 :(得分:0)

对于嵌套关系,请使用dot like announcement.advertiser

$house = App\House::with(['announcement', 'announcement.advertiser'])->where('house_id', $id)->first();