【问题标题】:Many to Many select with grouped information in Laravel 4在 Laravel 4 中使用分组信息进行多对多选择
【发布时间】:2014-10-10 06:16:52
【问题描述】:

我整天都被这个问题困扰:

  • 多对多关系
    • 模块(ID、名称、描述)
    • 员工(身份证、姓名、出生日期、性别等)
    • employees_modules

但是,employees_modules不仅有外键...还有其他字段:

  • module_id
  • employee_id
  • 教室(varchar)
  • 已注册(布尔值)
  • 存在(布尔值)
  • 离开(布尔值)
  • 其他标志
  • 随便

所以... 在一个查询中我需要...

  • 列出所有模块 +
  • 有多少员工属于该模块
  • 有多少个教室属于该模块(但班级只是一个字符串
  • 有多少员工在场

所以...我的问题是...

  1. 如何计算每个模块有多少个教室(字符串列) - 在原始 sql 中,我需要对教室进行分组然后计算。
  2. 如何将 where 条件传递给多对多关系

结构

型号

  • 模块.php
  • Employee.php
  • EmployeeModule.php

对不起,我的英文不好,请帮我修好...

【问题讨论】:

  • 我无法理解class (VARCHAR) 是什么以及您应该如何计算它。在我看来,X 个模块将有 X 个类。请解释一下
  • @Stichoza class= 班级 = 学校 = 课程。这是一个描述字段。
  • 你的意思是“类数”中的不同值吗?
  • @Stichoza 是的...在一个查询中我需要:模块 ID 和名称、该模块的教室数量和其他计算。但我不知道如何做一个简单的选择 + 一个带有 groupBy 和计数的子选择(这个 reuslt)

标签: php mysql laravel relationship


【解决方案1】:

查看how to access Laravel pivot table extra fields,然后使用wherePivot 方法过滤它们。

【讨论】:

    猜你喜欢
    • 2015-02-24
    • 2014-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-14
    • 2017-04-24
    相关资源
    最近更新 更多