Laravel множественные условия соединения с целочисленными значениями

Я хочу выполнить соединение с несколькими условиями:

->join('filters', function($join) {
    $join->on('filters.result_id', '=', 'results.id');
    $join->on('filters.result_filter_id', '=', 2);
    $join->on('filters.value', '>', 1);
})

Это приводит к ошибке:

Unknown column '2' in 'on clause'

Как я могу использовать фактические значения в соединении по условию без красноречивой интерпретации его как имени столбца? Он отлично работает с фактическим SQL-запросом:

JOIN filters ON filters.result_id = results.id 
AND filters.result_filter_id = 2 
AND filters.value > 1
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
1
0
927
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Замените on на where, если вы хотите отфильтровать свое объединение

If you would like to use a "where" style clause on your joins, you may use the where and orWhere methods on a join

->join('filters', function($join) {
    $join->on('filters.result_id', '=', 'results.id')
        ->where('filters.result_filter_id', '=', 2)
        ->where('filters.value', '>', 1);
})

Документация

Другие вопросы по теме