Laravel关系帖有很多喜欢

时间:2013-12-21 15:11:35

标签: php json laravel eloquent

        $post = Post::where('reply_to', 0)->skip(0)->take(10)->orderBy('pid', 'desc')->get();

        return Response::json(array(
            'status' => 200,
            'posts' => $post->toArray()
        ), 200);

我想要显示帖子,并在帖子中有一个谁喜欢它的数组信息。

在json中返回它。

我的帖子模型包含

public function likes()
{
    return $this->hasMany('Like', 'pid', 'pid');
}

所以我的问题是我无法设法做这种格式。我有点失落。

JSON:

{
    status 200
    posts  pid
           uid
           content
           likes
               uid

           post 2
           likes
               uid
}

模型

Post
    pid
    uid
    content

Like
    lid (like id)
    pid (post id)
    uid (user id)

非常欢迎建议和帮助


问题是如何实现我想要获得的输出。我返回所有帖子的json格式,如果帖子有任何帖子,每个帖子里面都有一个喜欢的数组。它是一个API。

1 个答案:

答案 0 :(得分:0)

我没有测试过这个..但是......:

发布模型:

public function likes(){
   $this->hasMany('Like','post_id');
}

喜欢型号:

public function post(){
   $this->belongsTo('Post','post_id');
}

响应:

$posts = Post::with('likes')->get();

Response::json( $posts->toJson() ); 

试试这个......仅使用likes ID:

Post::with(array('likes'=>function($query){
   $query->select('id');
}))->get();