【发布时间】:2019-01-28 23:48:51
【问题描述】:
我正在使用两个表和一个数据透视表
表 1 名为 calendars。
表 2 名为 calendar_groups。
数据透视表calendar_calendar_group。
我正在尝试根据数据透视表中的 where 值从表 1 中获取数据。其中calendar_groups_id = 1 然后使用calendar_id 从表1 中获取数据。我无法让它工作。
$event = new Calendar();
$event->orderBy('start', 'asc')
->whereHas('calendar_groups', function ($q) {
$q->wherePivot('calendar_groups_id', '=', '1');
})->with('calendar_groups')
->first();
这给了我以下错误:
SQLSTATE[42S22]:未找到列:1054 未知列 'pivot' in 'where子句'
这是关系:
public function calendar_groups()
{
return $this->belongsToMany(CalendarGroup::class);
}
非常感谢您的帮助。
【问题讨论】:
-
发布您的
Calendar模型或至少发布关系定义。 -
假设
calendar_groups中的主键是id,请尝试$q->where('id', '=', '1');。 -
@brnd0 我从日历模型中添加了关系
标签: laravel laravel-5 eloquent