Php 为什么laravel查询生成器不';t支持与IN-condition操作符连接?
我在拉拉维尔试着做这样的事情:Php 为什么laravel查询生成器不';t支持与IN-condition操作符连接?,php,laravel,laravel-5,Php,Laravel,Laravel 5,我在拉拉维尔试着做这样的事情: DB::table('TABLE1')->join('TABLE2', 'COLUMN1', 'IN', '(1,2,3)') 但当我查看Builder.php文件时,ON子句只支持以下运算符: public$operators=[ '=', '', '=', '', '!=', ‘like’、‘like binary’、‘not like’、‘between’、‘ilike’, '&', '|', '^', '', “rlike”、“regexp”、“n
DB::table('TABLE1')->join('TABLE2', 'COLUMN1', 'IN', '(1,2,3)')
但当我查看Builder.php文件时,ON子句只支持以下运算符:
public$operators=[
'=', '', '=', '', '!=',
‘like’、‘like binary’、‘not like’、‘between’、‘ilike’,
'&', '|', '^', '',
“rlike”、“regexp”、“not regexp”,
“~”、“~*”、“!~”、“!~*”、“类似于”,
'不类似于','不象','~~*','!~*',
];
是否有任何原因导致IN未列在$operators中?您应该在join子句中使用
,其中:
DB::table('table_name')->join('table_name', function($join) {
$join->whereIn('table_name.column', ['valueA', 'valueB', 'valueC']);
}
快速提示:一些问题已经在Laravel的GitHub存储库中得到了解答:
Laravel 5.3升级说明包含以下信息:
on
子句的运算符现在也被选中,并且不能
较长的字段包含无效值。如果您依赖于该功能
(例如,$join->on('foo','in',DB::raw('bar'))
)您应该重写
使用适当where条款的条件:
$join->whereIn('foo', ['bar']);
$join->whereIn('foo', ['bar']);