我有一个Advisor类与Events类有多对多的关系.这种关系定义为:
public function events()
{
return $this->belongsToMany('App\Event', 'advisor_events', 'advisor_id', 'event_id')->withTimestamps();
}
public function advisorEvents()
{
return $this->events()->get();
}
Run Code Online (Sandbox Code Playgroud)
事件表只有一个ID列和一个"event_name"列.我要做的是找到所有与特定事件名称相关的顾问.
我试试......
$advisors = Advisor::all();
$advisors = $advisors->advisorEvents()->where('event_name', $event);
Run Code Online (Sandbox Code Playgroud)
......但是我得到了错误
"Method advisorEvents不存在".
我试试......
$advisors = Advisor::with('events')->where('event_name', $event)->get();
Run Code Online (Sandbox Code Playgroud)
......但是我得到了
"在顾问表中找不到列event_name"...
感谢所有帮助,谢谢!
试试whereHas
这样:
$event_name = 'Some Name';
$advisors = Advisor::whereHas('events', function ($query) use($event_name) {
$query->where('event_name', $event_name);
})->get();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
67 次 |
最近记录: |