我正在尝试建立此查询的位置在哪里。但是,我在运行它时得到了错误。
$tickets = DB::table('ticket_details')
->join('client_details', 'client_details.client_id', '=', 'ticket_details.client_id')
->select();
if($archived){
$tickets->where('ticket_details.is_archived', '=', '1');
} else {
$tickets->where('ticket_details.is_archived', '=', '0');
}
if($user->hasRole('ABM')) {
$tickets->whereIn('client_details.client_area', $regions);
}
但是这个查询给了我这个错误:
传递给Illuminate \ Database \ Grammar :: parameterize()的参数1必须为数组类型,给定对象,在
/ Applications / XAMPP / xamppfiles / htdocs / levigo / vendor / laravel / framework / src / Illuminate / Database / Query中调用/Grammars/Grammar.php在第313行并已定义
这里的whereIn方法有什么问题?
在执行此代码之前,应检查$ regions是否为数组。当尝试从数据库中获取数组但未找到结果时,该对象未初始化为数组。
$tickets = DB::table('ticket_details')
->join('client_details', 'client_details.client_id', '=','ticket_details.client_id')
->select();
$tickets->where('ticket_details.is_archived', '=', $archived ? '1' : '0');
if($user->hasRole('ABM')) {
if( count( $regions ) ) $tickets->whereIn('client_details.client_area', $regions);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句