sql - Laravel 多对多关系计数
问题描述
我有两张桌子。用户和天,具有多对多的关系。user_days : user_id, day_id
public function users()
{
return $this->belongsToMany(User::class, 'user_day');
}
public function days()
{
return $this->belongsToMany(Day::class, 'user_day');
}
我想获取 day_id = 1 {for a specific day} 或类似的用户数。有什么方法可以从数据透视表中获取计数?此功能不起作用。
public function assign_prize(Request $request)
{
$userCount = $this->user->days()->withCount('users')->where($request->day_id, 'day_id')->get();
$giftLimit = Day::where('id', $request->day_id)->get();
if ($userCount > $giftLimit) {
return problem(__("Gift for the current day has been finished!!"), 500, "Gift Assign Failed");
}
表结构?
Schema::create('user_day', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->integer('day_id')->unsigned();
$table->boolean('assigned')->default(0);
$table->timestamps();
});
如何查找特定日期的用户数?
解决方案
您需要在雄辩的请求结束时使用计数选择器:
$userCount = users::all()->count();
推荐阅读
- amazon-web-services - 无法通过 ssh 进入 terraform 部署
- c# - MonoDevelop,linux,Ubuntu 18.04 Mint,在 ConsoleApplication 控制台中不弹出
- python - 手动实例化日志客户端
- sql - ACCESS SQL - 按条件分组的总和列并显示空结果
- java - 如何在矩形区域上插入可点击的透明字段?
- kotlin - 我尝试使用 Kotlin Coroutine Channels 并收到 ObsoleteCoroutinesApi 警告。替代品在哪里?
- svn - Subversion 可以在同一个文件夹中创建外部文件吗?
- geolocation - 一旦用户停止移动一段合理的时间,确定 GPS 跟踪用户位置的最佳策略是什么?
- c - 无重复排列 C
- python - 接受一个列表并返回两个列表的递归函数