find()和with()返回所有模型,而不是带有子项的模型

时间:2016-02-22 04:43:22

标签: eloquent eager-loading

我有一个模型WebElement buildingid= driver.findElement(By.xpath("//input[@name='ctl00$ContentPlaceHolder1$txtStreetNumber']")); System.out.println("Trying to get value "+buildingid.getAttribute("value")); ,它在模型Survey中定义了相关的子记录。

我想创建一条路线,在那里我可以查看单个调查,并查看所有儿童量表问题。我创建了这条路线,试图加载一项调查及其所有子项:但它会返回所有调查模型:

ScaleQuestions

目前有43项调查,只有10个儿童量表问题,但转储清楚地告诉我它载有43项调查。

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

当我拿出Collection {#684 ▼ #items: array:43 [▼ 0 => Survey {#208 ▶} 1 => Survey {#209 ▶} 2 => Survey {#210 ▶} 3 => Survey {#211 ▶} 时,我会得到一个构建器对象,我不知道该怎么做:

get()

它似乎是一个未经处理的查询,因为我无法获取任何属性:

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

我如何急切加载单一调查及其子问题?

1 个答案:

答案 0 :(得分:1)

我最后需要做find()

$survey = \App\Gt\Lib\Survey::with('scale_questions')->find($id);