Задать вопрос
@vanillathunder

Как передать переменную в join?

Есть запрос
DB::table('users')
        ->join('contacts', function($join)
        {
            $join->on('users.id', '=', 'contacts.user_id')
                 ->where('contacts.user_id', '>', 5);
        })
        ->get();

Я хочу в условие передать значение переменной
$id = 5;
DB::table('users')
        ->join('contacts', function($join)
        {
            $join->on('users.id', '=', 'contacts.user_id')
                 ->where('contacts.user_id', '=', $id);
        })
        ->get();

Но внутри анонимной функции значение данной переменной не видно. Как это реализовать?
  • Вопрос задан
  • 365 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фулстек-разработчик расширенный
    20 месяцев
    Далее
  • Onskills
    PHP: базовый курс
    1 месяц
    Далее
  • Skillbox
    PHP-фреймворк Laravel
    2 месяца
    Далее
Решения вопроса 1
amux
@amux
alp.ac
Используйте use:
function($join) use ($id){
  $join->on('users.id', '=', 'contacts.user_id')
    ->where('contacts.user_id', '=', $id);
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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