【发布时间】:2015-09-17 10:54:27
【问题描述】:
我正在尝试构建具有 where In 的查询。但是,当我运行它时,我得到了错误。
$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在哪里定义?如果是 laravel 集合对象(很有可能),那么尝试使用$regions->toArray()
标签: php laravel laravel-5 query-builder