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