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

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

Сообщение Anonymous »

У меня есть особая необходимость получить только модели, в которых все связанные модели имеют определенное значение .
Например, у меня есть модель, называемая пользователем и user имеет отношения Hasmy на модели с именем job .

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

┌────────┐          ┌───────┐
│        │   1:n    │       │
│  USER  │ ───────► │  JOB  │
│        │          │       │
└────────┘          └───────┘

, скажем, Модель задания имеет столбец с названием «Статус» , который может быть одним из следующих переводов Я хочу иметь возможность создавать метод на модели пользователя с именем scopeiflisted () . Цель сферы - фильтровать пользователей, где каждый статуса своей работы - либо JobStatus :: закрыто , либо JobStatus :: Планирован (и отныне у них нет заданий с JobStatus :: Open или JobStatus :: in_progress ). Если у них есть одна или несколько заданий, которые являются открытыми или в процессе, пользователь не имеет возможности. Br />

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

/**
* 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>
Кто -нибудь знает, возможно ли это, или приятный чистый простой способ, которым я могу достичь? /code>, rollowjobs 
, warededjobs и т. Д., И если область полагаться на то, где () и wheredoesnthave () .

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

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

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

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

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

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