0
私はアイテムの現在のユーザのための通知を得るカスタムファインダを持っています。通知は、「new_comment」のようなメッセージによってグループ化されます。私は私の結果にメッセージ、MESSAGE_COUNTを持つクエリWTH CakePHPのcontainsステートメントのリストにカウントクエリを変換する
は、キー=>値形式のファインダー内このクエリを変換する方法はありますので、私はメッセージでそれを持つことができます=> message_format//finder code;
return $query->contain([
'Notifications' => function ($q)use($userId) {
$q->select(['item_id','message','message_count'=> 'COUNT(message)']);
$q->where(['Notifications.user_id' => $userId]);
$q->group(['Notifications.message']);
return $q;
}
]);
クイックアップデート。私はコレクション($ q) - > combine( 'message'、 'message_count');を使うことができます。 $ queryの後に、私はそれを返すときにエラーをスローします。定義されていないメソッドを呼び出すArrayIterator :: aliasFields() –
counterCacheを使用しない理由http://book.cakephp.org/3.0/en/orm/behaviors/counter-cache.htmlユーザーのテーブルにカウントを格納し、リスト ')を使ってメッセージを取得しますか? – Salines
Cake \ Collection \ Collectionの結合メソッドを使用します。 – user3733648