Eloquent:急切加载选择约束?可能?

问题描述 投票:1回答:2

基本上这是有效的

Section::with('fields')->find($id);

也:

Section::with(['fields' => function ($q) {
    $q->select('*');
}])->find($id);

然而:

Section::with(['fields' => function ($q) {
    $q->select('label', 'position');
}])->find($id);

不会加载关系。

我没有在文档中找到关于急切加载约束的东西,除了使用'where',所以我的问题是,这甚至可能吗?

提前致谢。

laravel-4 eloquent
2个回答
2
投票

啊,原来你必须在select子句中明确包含section_id :)

所以这将按预期工作:

Section::with(['fields' => function ($q) {
    $q->select('section_id', 'label', 'position');
}])->find($id);

0
投票

我使用iwyg的响应,但我认为select中的第一个元素是连接这些表的键。在iwyg的示例节​​目中,表字段使用键section_id与表部分连接,这就是为什么select中的第一个元素。

© www.soinside.com 2019 - 2024. All rights reserved.