DB 返回数组 toArray 并不能用...

代码:

$list = DB::table('goodsshops')
            ->join('users', 'users.id', '=', 'goodsshops.shop_id')
            ->select('users.id','users.name',DB::raw('group_concat(goodsshops.id) as cart_id'))
            ->where('goodsshops.user_id',$user->id)
            ->groupBy('goodsshops.shop_id')
            ->get()
            ->toArray();
        dd($list);

错误信息:

Call to a member function toArray() on array

也就是DB join时怎么返回 数组...

JellyBool

你不要执行 toArray 了吧…直接get出来的你看看是什么?

就是 array 了吧

假如_丶 回复 JellyBool
Array
(
    [0] => stdClass Object
        (
            [user_id] => 1
            [nickname] => 用户7349
            [cart_id] => 38,39,37
        )

)

是这个…

JellyBool 回复 假如_丶

这不就是一个数组了么

240440387 回复 JellyBool

这是一个stdClass Object对象,laravel5.3以上DB门面不支持返回数组了。改源码可以解决。或者是自己处理一哈子 collect(DBResult)>map(function(DBResult)->map(function(x){ return (array) $x; })->toArray();