Laravel ORM 一对多在一个数组中

Laravel ORM one to many in one array

在Laravel 4.2,我有这个型号

// models ticket.php
class Ticket extends Eloquent {

    public function feedback()
    {
        return $this->hasMany('Feedback');
    }
}

// models/feedback.php
class Feedback extends Eloquent {

    public function ticket()
    {
        return $this->belongsTo('Ticket');
    }
}

当我这样做时:

$tickets = Ticket::with('feedback')->get();

它 returns 一组所有带有反馈的工单,如预期的那样放在一个数组中。

接下来我想获得一张包含所有相关反馈的工单:

$tickets = Ticket::find($id)->with('feedback')->get();

这 returns 也是所有带有反馈的工单。

我试过了:

$tickets = Ticket::find($id)->with('feedback')->first();

这似乎可行,但会忽略 $id,并且始终显示 table 中的第一个 row/ticket。 $id 不为空,我查过了。

find() 已经运行了一个查询。然后 with()->get() 运行另一个在 id 上没有 where 子句的。改为这样做:

$ticket = Ticket::with('feedback')->find($id);