Если вы хотите найти пользователя WHOS вложения удовлетворяют определенным ограничениям, затем используют метод whereHas
UserModel::whereHas('attachments', function ($attachmentQuery) {
$attachmentQuery->where('level', 'profile_level');
})->get();
Если вы хотите от уже запрошены модели получить конкретные вложения затем написать
$userModel->attachments()->where('level', 'profile_level')->get();
невозможно запросить как UserModel и AttachementModel в одном запросе, он должен быть по крайней мере два запроса. Даже причудливый UserModel::with('attachments')->get();
, который возвращает пользователя со всеми вложениями, выполняет внутренне два запроса.
Edit:
Я заметил, что вы можете определить relation constraints в with
метод
UserModel::with(['attachments' => function ($attachmentQuery) {
$attachmentQuery->where('level', 'profile_level');
}])->get();
Так что, если вы хотите найти пользователя WHOS вложения встретились определенные ограничения и нетерпеливый нагрузки, что вложения, то вы можете сделать
$queryAttachments = function ($attachmentQuery) {
$attachmentQuery->where('level', 'profile_level');
};
UserModel::whereHas('attachments', $queryAttachments)
->with(['attachments' => $queryAttachments])->get();
ОК, но в этой ситуации я должен сначала получить пользователя. Я хочу сделать один запрос примерно так: Profile :: with ('attachment'). Я хочу получить объект Профиль со связанными данными, но не со всеми связанными данными, но где level = user_level –