@atachrus

Laravel: Как передать значение в условие при группировке параметров SQL запроса?

Подскажите как правильно при группировки параметров, передать значение/переменную в группу условий?

// Грубо говоря мне нужно получить такой запрос:
select id from `table` where `order_status ` = ? and (`event_id ` = ? or `event_depend1 ` = ? or `event_depend2 ` = ?)

Но при группировки, ругается на отсутствие $varName
$varName = 'value';
$ordersData = OrderEAG::select('id')
                    ->where('order_status', $statusActive)
                    ->where(function ($query) {
                        $query->orWhere('event_id', $varName)
                            ->orWhere('event_depend1', $varName)
                            ->orWhere('event_depend2', $varName);
                    })
                    ->get();

// Undefined variable: varName
  • Вопрос задан
  • 351 просмотр
Решения вопроса 1
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
php.net/manual/en/functions.anonymous.php

Example #3 Inheriting variables from the parent scope
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
$varName = 'value';
$ordersData = OrderEAG::select('id')
    ->where('order_status', $statusActive)
    ->where(function ($query) use($varName) {
        $query->orWhere('event_id', $varName)
           ->orWhere('event_depend1', $varName)
           ->orWhere('event_depend2', $varName);
       })
   ->get();
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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