如何在使用laravel

时间:2016-01-08 13:01:47

标签: php mysql laravel-5 eloquent relationships

我正在为一个社交应用程序工作,我需要显示带有标记用户的提要,哈希标记,计数,评论计数,评论以及评论过的用户详细信息。

Feed与普通Feed有点不同,这是数据库结构。

用户表:

id username email image

电影表格(管理员会添加电影,用户会根据标题搜索电影对其进行评分)

id title image description

评分表:(这将是一个Feed,a用户评为x电影,while rating user will tag to another user并使用了一些hash tags

id movie_id user_id rating description

rating_tag表:(它将保存哈希标记ID和评级ID)

id rating_id tag_id

rating_user table:(它将保留已标记的用户ID和评级ID)

id rating_id tag_id

喜欢表格:

id rating_id user_id

评论表:

id rating_id user_id comment

现在我需要显示包含所有内容的Feed,评分为Feed(具有评分的用户图片,电影图片,标题和说明)以及评论了这些用户详细信息和总计数量的所有评论。

我已经使用了它,但它没有给我正确的结果。

public function getAllForFeed ($user_ids) {
    return $this->with(['tags' => function ($q) {
        $q->select('tags.id');
    }])->with(['likes' => function ($q) {
        $q->select(DB::raw('count(id) as like_count'));
    }])->with(['comments' => function ($q) {
        $q->select('user_id', 'comment');
    }])->with(['users' => function ($q) {
        $q->select('users.id');
    }])->whereIn('user_id', $user_ids)->get()->toArray();
}

1 个答案:

答案 0 :(得分:0)

我认为这可以使用每个相应模型中的关系完成,并在需要时使用该关系获取数据。

因此,首先要找到相关表格之间的肉体,并在每个模型中放置关系。然后尝试使用与模型对象的关系。请尝试解决使用关系,如果您仍然无法弄清楚,然后发布您的模型与关系并查看您想要显示您的Feed的代码,我将尝试解决。

我想你看看有关eloquent relationship的官方文档。如果还没有,请看看。