在数组laravel 5.0.35上调用成员函数where()

时间:2016-11-30 14:37:40

标签: php laravel laravel-5

我正在使用

    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

1 个答案:

答案 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']));