find() 和 with() return 所有模型,而不是模型 with children
find() and with() return all models, instead of model with children
我有一个模型 Survey
,它具有在模型 ScaleQuestions
中定义的相关 child 记录。
我想创建一个路线,我可以在其中查看单个调查并查看其所有 child 规模问题。我创建了这条路线,试图加载一项调查及其所有 children:但它 returns 所有调查模型:
public function survey($id) {
$survey = \App\Gt\Lib\Survey::find($id)
->with('scale_questions')
->get();
;
\dump($id);
\dump($survey);
return view('gt/admin/survey')->with('survey',$survey);
(当前)有 43 个调查,只有 10 个 child 规模问题,但转储清楚地显示它加载了 43 个调查。
Collection {#684 ▼
#items: array:43 [▼
0 => Survey {#208 ▶}
1 => Survey {#209 ▶}
2 => Survey {#210 ▶}
3 => Survey {#211 ▶}
当我取出 get()
时,我得到了一个生成器 object,我不知道如何处理它:
Builder {#161 ▼
#query: Builder {#154 ▶}
#model: Survey {#165 ▶}
#eagerLoad: array:1 [▶]
#macros: []
#onDelete: null
#passthru: array:10 [▶]
}
这似乎是一个未处理的查询,因为我无法从中获取任何属性:
public function survey($id) {
$survey = \App\Gt\Lib\Survey::find($id)
->with('scale_questions');
\dump($survey->id);
给我这个:
ErrorException in AdminSurveysController.php line 31: Undefined property: Illuminate\Database\Eloquent\Builder::$id
我如何 eager-load 单项调查及其 child 个问题?
我需要做最后的 find()
:
$survey = \App\Gt\Lib\Survey::with('scale_questions')->find($id);
我有一个模型 Survey
,它具有在模型 ScaleQuestions
中定义的相关 child 记录。
我想创建一个路线,我可以在其中查看单个调查并查看其所有 child 规模问题。我创建了这条路线,试图加载一项调查及其所有 children:但它 returns 所有调查模型:
public function survey($id) {
$survey = \App\Gt\Lib\Survey::find($id)
->with('scale_questions')
->get();
;
\dump($id);
\dump($survey);
return view('gt/admin/survey')->with('survey',$survey);
(当前)有 43 个调查,只有 10 个 child 规模问题,但转储清楚地显示它加载了 43 个调查。
Collection {#684 ▼
#items: array:43 [▼
0 => Survey {#208 ▶}
1 => Survey {#209 ▶}
2 => Survey {#210 ▶}
3 => Survey {#211 ▶}
当我取出 get()
时,我得到了一个生成器 object,我不知道如何处理它:
Builder {#161 ▼
#query: Builder {#154 ▶}
#model: Survey {#165 ▶}
#eagerLoad: array:1 [▶]
#macros: []
#onDelete: null
#passthru: array:10 [▶]
}
这似乎是一个未处理的查询,因为我无法从中获取任何属性:
public function survey($id) {
$survey = \App\Gt\Lib\Survey::find($id)
->with('scale_questions');
\dump($survey->id);
给我这个:
ErrorException in AdminSurveysController.php line 31: Undefined property: Illuminate\Database\Eloquent\Builder::$id
我如何 eager-load 单项调查及其 child 个问题?
我需要做最后的 find()
:
$survey = \App\Gt\Lib\Survey::with('scale_questions')->find($id);