使用另一个“”内部的“ with()”获取特定的列

时间:2018-07-06 14:38:43

标签: php laravel laravel-5 eloquent

我需要在'with'内链接的2种方法中获得特定的列,但它不起作用,我如何在'with'方法内的每种方法中选择特定的列。

Event::with('eventBookmakers.bookmakerInfo')->find(2);

3 个答案:

答案 0 :(得分:3)

可能是这样的:

Event::with('eventBookmakers:column', 'eventBookmakers.bookmakerInfo:column')->find(2);

记住要选择外键列(例如event_id)。

答案 1 :(得分:0)

尝试此操作,将列名更改为要检索的列。

Event::with('eventBookmakers.bookmakerInfo:columnName')->where('id', 2)->get();

Event::with('eventBookmakers.bookmakerInfo:columnName')->find(2);

答案 2 :(得分:0)

由于要使用点.选择两个相互关联的表(关系),因此可以在闭包中使用select()with()来添加约束并添加关系。因此,您最终会得到类似的东西:

Event::with(['eventBookmakers' => function($bookmakers){
    $bookmakers->select('id', 'event_id')->with(['bookmakerInfo' => function($info) {
        $info->select('id', 'bookmaker_id');
    }]);
}])->find(2);

请注意,传递给第一选择的event_id确保在EventEventBookmaker之间加载了关系(您可以将其替换为您使用的related_id),而与使用{ {1}},以便它可以加载bookmaker_idBookmaker

之间的关系