Php 在与laravel一起使用时,如何从关系表中选择计数
我正在为一个社交应用工作,我需要显示带有标记用户的提要、散列标记,如计数、评论计数、评论以及评论过的用户详细信息 该提要与普通提要略有不同,下面是数据库结构 用户表:Php 在与laravel一起使用时,如何从关系表中选择计数,php,mysql,laravel-5,eloquent,relationships,Php,Mysql,Laravel 5,Eloquent,Relationships,我正在为一个社交应用工作,我需要显示带有标记用户的提要、散列标记,如计数、评论计数、评论以及评论过的用户详细信息 该提要与普通提要略有不同,下面是数据库结构 用户表: id用户名电子邮件图像 电影表:(管理员将添加电影,用户将通过按标题搜索电影对其进行评分) id标题图像说明 分级表:(这将是一个提要,a用户分级了x电影,,而分级用户将标记给另一个用户,并使用一些哈希标记) idmovie\u id用户id评级说明 分级标记表:(它将保存哈希标记id和分级id) idrating\u idtag
id
用户名
电子邮件
图像
电影表:(管理员将添加电影,用户将通过按标题搜索电影对其进行评分)
id
标题
图像
说明
分级表:(这将是一个提要,a
用户分级了x
电影,,而分级用户将标记给另一个用户
,并使用一些哈希标记
)
id
movie\u id
用户id
评级
说明
分级标记表:(它将保存哈希标记id和分级id)
id
rating\u id
tag\u id
评级\u用户表:(它将保存标记的用户id和评级id)
id
rating\u id
tag\u id
喜欢表格:
id
rating\u id
user\u id
评论表:
id
rating\u id
user\u id
comment
现在,我需要显示包含所有内容的提要,并将其评级为提要(已评级的用户图像、电影图像、标题和描述),以及已评论的所有评论,包括这些用户的详细信息和总喜欢数。
我已经用过了,但它没有给我正确的结果
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();
}
我认为这可以通过在各个模型中使用关系来实现,并在需要时使用该关系获取数据 因此,首先找出相关表之间的关系,并将关系放在每个模型中。然后尝试使用与模型对象的关系。请尝试使用关系解决问题,如果您仍然无法解决问题,请将带有关系和视图代码的模型发布到您希望显示提要的位置,我将尝试解决问题 我想你已经看了有关的官方文件。如果还没有,请看一看