Ларавел получает только модели, где все отношения имеют определенную ценностьPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Ларавел получает только модели, где все отношения имеют определенную ценность

Сообщение Anonymous »

У меня есть особая необходимость получить только модели, в которых все связанные модели имеют определенное значение .
Например, у меня есть модель, называемая пользователем и user имеет отношения Hasmy на модели с именем job .
Допустим, что модель задания имеет столбец под названием «Статус , который может быть одним из следующих Enums < /p> Я хочу иметь возможность написать сферу сферы на модели пользователя с именем scopeifpinited () . Цель сферы - отфильтровать пользователей, где Каждый их работы Отношения - либо JobStatus :: checken , либо JobStatus :: Планируемое и они есть 0 jobstatus :: open или jobstatus :: in_progress . Если у них есть какие -либо открытые/в процессе, они не закончены.

Код: Выделить всё

/**
* Is finished. Every single one of the users jobs are closed, they have 0 open jobs.
*
* @param Builder $query
* @return Builder
*/
public function scopeIsFinished(Builder $query): Builder
{
return $query->whereOnlyHas('jobs', function($sub){
$sub->whereIn('status', [JobStatus::CLOSED, JobStatus::SCHEDULED]);
});
}
< /code>
Кто -нибудь знает, возможно ли это, или приятный чистый простой способ, которым я могу достичь? 
, закрытые джобы , preduledjobs и т. Д., И заставляйте область полагаться на то, где () и wheredoesnthave () .
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/794 ... ific-value
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»