私は、PHP に関する最小限の知識で、他の誰かの CakePHP コードを扱っているので、これは非常に基本的な質問かもしれません。
コントローラー内で、次のコードは配列の作成を開始し、それが .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 を使用してみましたが、配列フィールド内では機能しないようです (とにかく適切に使用していない可能性があります)。
これを機能させる方法について何か考えはありますか?重要ではありませんが、私は本当にそれを持ちたいと思っています。