Laravel 使用Eloquent将数组附加到查询

Laravel 使用Eloquent将数组附加到查询,laravel,laravel-4,eloquent,Laravel,Laravel 4,Eloquent,我有一个用户表、一个项目表和一个喜欢表。我从名为“categories”的items表中随机抽取了9个项目,我想得到一个喜欢该项目的用户数组。我返回了一个JSON响应,所以据我所知,我不能使用laravel的ORM关系。我希望能够通过javascript查看结果,如下所示: foreach item item->price .... foreach user (this is how i wish to look through the users

我有一个用户表、一个项目表和一个喜欢表。我从名为“categories”的items表中随机抽取了9个项目,我想得到一个喜欢该项目的用户数组。我返回了一个JSON响应,所以据我所知,我不能使用laravel的ORM关系。我希望能够通过javascript查看结果,如下所示:

foreach item
     item->price
     ....
     foreach user
     (this is how i wish to look through the users with js)
     endforeach
endforeach
{{--Im trying to get an output that looks like so--}}
0: {
   cost: 409
   views: 0
   ...
   user_like_id: {1,5,2,4,5}
}
编辑:这是我想将数组附加到的内容

$likes = Category::orderByRaw("RAND()")
             ->leftJoin('likes', 'likes.item_id', '=', 'categories.id')
             ->take(9)
             ->get();

我对编程比较陌生,所以请不要轻描淡写这个问题

Laravel提供了从对象生成json的方法。第一个也是最简单的是雄辩的toJson方法:

$likes现在是json

第二种方法: 如果从控制器或routecallback函数返回模型,则laravel将其作为json返回。因此:

class MyController extends Controller{
    public function getIndex(){
       return Category::orderByRaw("RAND()")
             ->leftJoin('likes', 'likes.item_id', '=', 'categories.id')
             ->take(9)
             ->get();
    }
}

这个示例返回一个非常有用的json响应

我真的得到了我想要的:

$likes = Category::orderByRaw("RAND()")
                  ->take(9)
                  ->with(array('getLikes' => function($query)
                  {    
                      $query->with('getUser');
                  }))
                  ->get();

这正是我想要的:谢谢你的建议,你可以在这里使用ORM。@MarcinNabiałek如果你这么说,请告诉他如何做到这一点。使用eloquent,您可以对自己的结果调用->toJson方法。这会将输出转换为json。谢谢。你能给我举个例子吗?我编辑了我的问题并添加了现有的代码@阿扬
$likes = Category::orderByRaw("RAND()")
                  ->take(9)
                  ->with(array('getLikes' => function($query)
                  {    
                      $query->with('getUser');
                  }))
                  ->get();