Laravel:如何从二维ID数组中获取关系模型

时间:2015-10-27 16:29:51

标签: laravel eloquent query-builder

我有一组ID $bookingPaymentPending[attendee_id][program_id] =

array(2) { [416]=> array(2) { [0]=> int(2) [1]=> int(4) } 
           [417]=> array(2) { [0]=> int(2) [1]=> int(4) } } 

我想获得attendee及其programs的关系模型集合。基本上我想访问$attendee->programs

我这样做....

foreach ($bookingsPaymentPending as $attendee_id => $program_ids)
{
  $attendees[$attendee_id] = Attendee::find($attendee_id)->with(['scheduled_programs' => function($q) use ($program_ids)
  {
    $q->whereIn('id', $program_ids);
  }]);
}

但是$attendees是不对的,因为我不知道如何把它变成一个雄辩的模型。有人能告诉我如何正确地做到这一点吗?有一种简单有说服力的方法吗?或者是查询构建器的方法吗?

1 个答案:

答案 0 :(得分:1)

这会给你预期的输出吗?

$attendees = Attendee::with('scheduled_programs')
    ->whereIn('id', array_keys($bookingPaymentPending))
    ->get();

foreach($attendees as $attendee){
    var_dump($attendee->scheduled_programs);
}