在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();
它按预期返回一个包含反馈的所有故障单的数组。
接下来我想获得一张包含所有相关反馈的门票:
$tickets = Ticket::find($id)->with('feedback')->get();
这也会返回所有票据及其反馈。
我试过了:
$tickets = Ticket::find($id)->with('feedback')->first();
这似乎有效,但忽略$ id并始终显示表中的第一行/票证。 $ id不为空,我查了一下。
答案 0 :(得分:2)
find()
已经运行了一个查询。然后with()->get()
运行另一个没有id的where子句。这样做:
$ticket = Ticket::with('feedback')->find($id);