【发布时间】:2016-12-21 19:34:36
【问题描述】:
我正在使用 Laravel 的 (5.3) Eloquent ORM 并尝试使用数据透视表进行过滤。我有三个表:events、supervisors 和 event_has_supervisors。现在我只想将所有事件分配给某个主管。
在我的事件模型中,我得到了这个:
public function supervisors() {
return $this->belongsToMany(Supervisor::class, 'event_has_supervisors')->withPivot('hours');
}
在我的控制器中,我现在需要根据几个条件查询所有事件:
$events = Event::with($relations);
// This works well: get all Events in one or more given cities
$events = $events->whereIn('events.place_id', $cities);
// This does not work
$events = $events->whereIn('events.supervisor_id', $supervisors);
很明显,最后一个 where 子句不起作用,因为我的事件表上没有这样的属性。但是在这种情况下如何查询我的数据透视表?我希望分配给该活动的任何主管成为 $supervisors 中的任何主管。
【问题讨论】:
标签: php laravel laravel-5 eloquent