Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用一个模型连接三个表_Php_Sql_Laravel_Eloquent - Fatal编程技术网

Php 如何使用一个模型连接三个表

Php 如何使用一个模型连接三个表,php,sql,laravel,eloquent,Php,Sql,Laravel,Eloquent,我从来没有学过雄辩。我正在学习API,我希望尽可能快速地获取一些数据,而不必编写sql,我通常会做什么 我有表格:“房子”与“公告”(一对一)相关,“公告”表格与“广告商”(一对多)相关 当我试着 $house = \App\House::where('house_id', $id)->with('announcement', 'advertiser')->first(); 我得到一个错误:公告未定义的方法。 我想我在模型上正确设置了关系,所以我没有在这里包括它们。我

我从来没有学过雄辩。我正在学习API,我希望尽可能快速地获取一些数据,而不必编写sql,我通常会做什么

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

当我试着

       $house = \App\House::where('house_id', $id)->with('announcement', 'advertiser')->first();
我得到一个错误:公告未定义的方法。 我想我在模型上正确设置了关系,所以我没有在这里包括它们。我想使用模型屋加入,因为我在使用Eloquent时没有使用默认连接。

with()必须首先放置,并在数组中指定关系(如果加载多个)

编辑: 对不起,我没有看到它是嵌套关系 您可以使用此代码而不是上面的代码:

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

对于嵌套关系,请使用类似点的announcement.advertiser


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

生成的BadMethodCallException:调用未定义的方法Illumb\Database\Query\Builder::advertiser()My bad,它似乎是一个嵌套关系。我编辑了我的帖子。
$house = \App\House::with(['announcement', 'announcement.advertiser'])->where('house_id', $id)->first();