@Ismail-1

Как построить запрос для получения данных из БД с Elequent ORM?

Как написать запрос для выборки, например через if я могу отобрать те записи которые мне нужны но при этом я тогда получаю все записи с БД и через цикл сравниваю и отправляю
нужные.
$user = User::find($user_id);
        $messages =  Message::where('active', true)->get();
if($message->referrer == true || $message->referrer == false && $user->referrer_1_id == null){

А как в запросе уже можно записать if
Например запрос
Получить запись где referrer = true или если же referrer == false и $user->referrer = null то тоже получить эту запись
  • Вопрос задан
  • 105 просмотров
Пригласить эксперта
Ответы на вопрос 3
Fragster
@Fragster
помогло? отметь решением!
https://laravel.com/docs/9.x/queries#conditional-c...
что-то типа
Message::where('active', true)
  ->when($user->referrer_1_id !== null, function ($query, $userReferrerIsNotNull) {
    $query->where('referrer ', true);
  })->get()
Ответ написан
Комментировать
@vism
Не знаю, что за извращение использовать when.
вот так можно как угодно конфигурировать и вобще передавать запрос куда угодно в переменной.
$user = User::find($user_id);
$messagesQuery =  Message::where('active', true);
if($message->referrer == true || ($message->referrer == false && $user->referrer_1_id == null)){
  $messagesQuery->where(....);
}
$messages =  $messagesQuery->get()
Ответ написан
Комментировать
pLavrenov
@pLavrenov
Разработка сайтов
$response = User::where([
    ['active', true],
    ['referrer', true],
])->orWhere([
    ['active', true],
    ['referrer', false],
])->whereHas('user', function ($q) {
    $q->where('referrer_1_id', null);
})->get();


Уличная магия
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы