1
У меня две модели с шарниром.Как использовать метод wherePivot в области?
Domain
{
public function projects()
{
return $this->belongsToMany('Project')->withPivot('is_live');
}
}
Project
{
public function domains()
{
return $this->belongsToMany('Domain')->withPivot('is_live');
}
}
Тогда я пытаюсь создать Scope "домены, которые имеют проекты и is_live = истину", как этого Laravel Scope by pivot data values
public function scopeHasLiveProjects($query)
{
$pivotTable = $this->projects()->getTable();
return $query->whereHas('projects', function ($q) use ($pivotTable) {
$q->where($pivotTable . '.is_live', true);
});
}
Но как я могу использовать красноречивый метод wherePivot ('is_live', '=', true) в области? Является ли это возможным?!
Это неправильное решение, becouse «is_live» это поле сводной таблицы. –
принадлежит таблице результатов. Должна быть project_id, domain_id, is_live. А когда выбор проектов области, где стержнем is_live == верно, возвращение $ query-> whereHas ('проекты', функция ($ Q) { $ q-> wherePivot ('is_live', правда); }); должен быть прав, я думаю –
Отлично! Ваше первое решение работает !!! function ($ q) {$ q-> где ('is_live', true); }); ** not ** function ($ q) {q-> гдеPivot ('is_live', true); }); –