Laravel where子句上的非法操作符和值组合



我的项目中有10多个控制器。它们都有相同的代码,只是表名不同。

恰好有2个控制器与共享主机有问题,即"非法操作符和值组合"。令人惊讶的是,其他控制器不会犯这样的错误。也许我忽略了什么。

这就是"非法操作符和值组合"问题的来源。

$tarifs = DB::table('tarifs as tarif')
->join('companies as comp', 'tarif.company_id','=', 'comp.id')
->join('categories as cats', 'tarif.catid', '=', 'cats.id')
->where('tarif.company_id', '<', env('COMKEY'))
->get(['tarif.*', 'comp.name', 'comp.photo as cimage','cats.cat_uz']);

显示这一行为错误->where('tarif.company_id', '<', env('COMKEY'))

这个没有错误。

$minutes = DB::table('minutes as minute')
->join('companies as comp', 'minute.company_id','=', 'comp.id')
->join('categories as cats', 'minute.catid', '=', 'cats.id')
->where('minute.company_id', '<', env('COMKEY'))
->get(['minute.*', 'comp.name', 'cats.cat_uz']);

项目在本地主机上正常运行,没有错误。共享和本地php版本是一样的7.4

env('COMKEY')返回null时,您将得到这个错误:

InvalidArgumentException与消息'非法操作符和值组合。'

代码:

$minutes =  DB::table('tarifs as tarif')
->join('companies as comp', 'tarif.company_id','=', 'comp.id')
->join('categories as cats', 'tarif.catid', '=', 'cats.id')
->when($comKey,function($query) use ($comKey){
logger()->info('Comkey value is not null',[
'comKey'=> $comKey
]);
return $query->where('tarif.company_id', '<', env('COMKEY'));
},function($query) use ($comKey){
logger()->info('Comkey value is null');
return $query;
})
->dd();

请使用上述查询来调试您的查询。

如果从env返回值,日志将是类似

的内容
Comkey value is not null {"comKey":"RandomKey"} 

如果从env返回值,则日志将是如下内容:

Comkey value is null  

最新更新