Php 在yii框架中连接表并从一个表中获取计数

Php 在yii框架中连接表并从一个表中获取计数,php,yii,Php,Yii,我是yii的新手,我面临一个小问题。在我的一个项目中,我有两个模型员工和部门。在管理方面,在列出部门(网格视图)时,我必须显示每个部门的员工数量。我已经完成了列出部门的页面,但无法添加每个部门的员工数量 我的员工表包括: 埃皮德 德普蒂德 empname 我的部门表包括: 德普蒂德 部门名称 在mysql(phpmyadmin接口)中,我可以编写一个查询来组合这两个表并得到正确的结果: SELECT D. * , count( E.deptid) AS emp_count FROM depart

我是yii的新手,我面临一个小问题。在我的一个项目中,我有两个模型员工和部门。在管理方面,在列出部门(网格视图)时,我必须显示每个部门的员工数量。我已经完成了列出部门的页面,但无法添加每个部门的员工数量

我的员工表包括:

  • 埃皮德
  • 德普蒂德
  • empname
  • 我的部门表包括:

  • 德普蒂德
  • 部门名称
  • 在mysql(phpmyadmin接口)中,我可以编写一个查询来组合这两个表并得到正确的结果:

    SELECT D. * , count( E.deptid) AS emp_count
    FROM department AS D
    LEFT JOIN employee AS E ON D.id = E.deptid
    GROUP BY D.id
    
    此查询的结果:

    id name           emp_count
    1 Accounts          0
    2 Development       2
    3 Quality Control   1
    4 Operations        0
    5 Human Resources   2
    6 System            1
    

    如何在yii的网格视图中实现这一点

    下面是如何在cgridview中进行连接的代码, 在搜索功能中添加此代码

    $criteria->with = array('relation_name'); 
    $criteria->addCondition('relation_name.column_name ='.comparision_variable);
    $model = Model::model()->findAll($criteria);
    

    在上面的答案中添加以下代码

    $criteria->select = 't. * , count( employee.deptid)';
    $criteria->group = 't.id';
    
    第一行将选择所需的列。
    第二行是给group by的。

    您好,欢迎来到SO,我强烈建议您前往,并对其进行适当的查看,因为它既不是编码服务,也不是指导/教程网站。请向我们展示您所做的尝试,并包括从中获得的任何错误谢谢您的友好重播。。请你解释一下我如何计算每个部门的员工人数好吗?我将如何给出条件?向Biswajith KR致意,感谢您发布此问题的答案!堆栈溢出时不鼓励只使用代码的答案,因为没有上下文的代码转储无法解释解决方案的工作方式或原因,这使得原始海报(或任何未来读者)很难理解其背后的逻辑。请编辑您的问题并对代码进行解释,以便其他人可以从您的答案中获益。谢谢