【问题标题】:Laravel 7.x eloquent addSelect subquery to countLaravel 7.x 雄辩的 addSelect 子查询来计数
【发布时间】:2020-08-13 15:48:03
【问题描述】:

使用Laravel 7.xPostgresql。我有一个User 类和GroupPivot 数据透视表,可以对多个模型进行分组。如果用户有一个针对该组的当前数据透视条目,我想在 User 类之外创建一个具有 true 或 false 的列。这样我就可以列出所有用户并知道他们是在组内还是组外。

我的查询:

User::addSelect([
    'in_group' => GroupPivot::whereColumn('groups_pivot.pivot_id', 'users.id')
        ->where('groups_pivot.group_id', $group->id)
        ->where('groups_pivot.model', User::class)
        ->count()
     ])->get();

我被困了一段时间:

SQLSTATE[42P01]: Undefined table: 7 ERROR: missing FROM-clause entry for table "users" LINE 1: ... "groups_pivot" where "groups_pivot"."pivot_id" = "users"."i... ^ (SQL: select count(*) as aggregate from "groups_pivot" where "groups_pivot"."pivot_id" = "users"."id" and "groups_pivot"."model" = App\Models\User)

我错过了什么?谢谢。

【问题讨论】:

标签: laravel postgresql


【解决方案1】:

这解决了它。它不喜欢->count()

User::addSelect([
        'in_group' => GroupPivot::selectRaw('COUNT(*)')
           ->whereColumn('groups_pivot.pivot_id', 'users.id')
           ->where('groups_pivot.group_id', $group->id)
           ->where('groups_pivot.model', User::class)
      ])->get();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-26
    • 2021-07-23
    • 2022-01-20
    • 2017-11-11
    • 2013-02-02
    • 2023-04-05
    • 1970-01-01
    相关资源
    最近更新 更多