2016-08-26 3 views
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; 
     } 
    ]); 
+0

クイックアップデート。私はコレクション($ q) - > combine( 'message'、 'message_count');を使うことができます。 $ queryの後に、私はそれを返すときにエラーをスローします。定義されていないメソッドを呼び出すArrayIterator :: aliasFields() –

+1

counterCacheを使用しない理由http://book.cakephp.org/3.0/en/orm/behaviors/counter-cache.htmlユーザーのテーブルにカウントを格納し、リスト ')を使ってメッセージを取得しますか? – Salines

+0

Cake \ Collection \ Collectionの結合メソッドを使用します。 – user3733648

答えて

0

使用Cake\Collection\Collectioncombine方法

+0

私は既に元の投稿の下でこのメソッドを試してみることについて言及しましたが、うまくいきませんでした。 –

関連する問題