我正在使用
public function getImages($array_symbols_id){
$array_images = DB::table('photo')
->whereIn('photo_symbol_id', $array_symbols_id)
->where('photo_moderation_id','2')
->orderByRaw('RAND()')
->get(['photo_id', 'photo_src', 'photo_symbol_id']);
然后尝试
$array = array();
foreach ($array_symbols_id as $id) {
$array[] = $array_images->where('photo_symbol_id', $id)->first()->photo_src;
}
但我有异常调用成员函数where()on array。
为什么DB :: table返回一个数组而不是一个集合?
laravel v5.0.35
答案 0 :(得分:3)
在Laravel 5.0中,DB返回一个数组,Model返回集合,因此您可以使用collect()
将其设为集合:
$array_images = collect(DB::table('photo')
->whereIn('photo_symbol_id', $array_symbols_id)
->where('photo_moderation_id','2')
->orderByRaw('RAND()')
->get(['photo_id', 'photo_src', 'photo_symbol_id']));