我正在使用其他人的 CakePHP 代码,对 PHP 的了解很少,所以这可能是一个非常基本的问题。
在控制器中,以下代码开始创建一个数组,然后将其传递给 .ctp 文件:
$prefs_by_user = $this->PanelPref->find('all', array(
'fields' => array(
'UserTimeSlot.day_time_slot_id', 'PanelPref.panel_id', 'Panel.name',
'COUNT(DISTINCT PanelPref.user_id) AS panels_int' ,
PanelPref 中的面板评分可能等于 1、2 或 3。我想添加一些字段来计算每个评分有多少人给这个特定面板。我试过这个:
'COUNT(PanelPref.panel_rating_id = 3) AS rated_three',
'COUNT(PanelPref.panel_rating_id = 2) AS rated_two',
'COUNT(PanelPref.panel_rating_id = 1) AS rated_one',
但所做的只是计数PanelPref.panel_rating_id
,因为用户的评分与评分一样多,所以所有变量最终都具有相同的值。
我尝试使用==
and=>
而不是=
,但它们返回错误。
我已经尝试COUNT(PanelPref.panel_rating_id WHERE PanelPref.panel_rating_id = 3) AS rated_three
并得到了一个错误。
我试过使用array_count_values,但它似乎在数组字段中不起作用(而且我可能没有正确使用它)。
关于如何使这项工作的任何想法?这并不重要,但我真的很想拥有它。