首页 > 解决方案 > laravel 具有整数值的多个连接条件

问题描述

我想加入多个条件:

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

这会导致错误:

“on 子句”中的未知列“2”

如何在条件连接中使用实际值而无需雄辩地将其解释为列名?它适用于实际的 SQL 查询:

JOIN filters ON filters.result_id = results.id 
AND filters.result_filter_id = 2 
AND filters.value > 1

标签: mysqllaraveljoineloquent

解决方案


如果您想过滤您的加入,请替换onwhere

如果您想在连接上使用“where”样式子句,您可以在连接上使用 where 和 orWhere 方法

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

文档


推荐阅读