我正在为一个社交应用程序工作,我需要显示带有标记用户的提要,哈希标记,计数,评论计数,评论以及评论过的用户详细信息。
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();
}
答案 0 :(得分:0)
我认为这可以使用每个相应模型中的关系完成,并在需要时使用该关系获取数据。
因此,首先要找到相关表格之间的肉体,并在每个模型中放置关系。然后尝试使用与模型对象的关系。请尝试解决使用关系,如果您仍然无法弄清楚,然后发布您的模型与关系并查看您想要显示您的Feed的代码,我将尝试解决。
我想你看看有关eloquent relationship的官方文档。如果还没有,请看看。