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);