我需要在'with'内链接的2种方法中获得特定的列,但它不起作用,我如何在'with'方法内的每种方法中选择特定的列。
Event::with('eventBookmakers.bookmakerInfo')->find(2);
答案 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
确保在Event
和EventBookmaker
之间加载了关系(您可以将其替换为您使用的related_id),而与使用{ {1}},以便它可以加载bookmaker_id
和Bookmaker