0

私は次のモデルを持っています:

$values = $this->PtlUserdata->find('all', array(

    'fields' => array(

        'PtlUserdata.field', 
        'PtlUserdata.value',
        'PtlUserdata.timestamp'

     ), 

     'conditions' => array(

         'PtlUserdata.user_id' => $user->get('id'),

     ),

     'order' => array('PtlUserdata.timestamp' => 'DESC'),
     'group' => array('PtlUserdata.field')

));

結果をタイムスタンプで並べ替えてから、結果をフィールドでグループ化しようとしているので、そのフィールド名で最新のレコードを取得できます。

これを行う方法がcakephpであることを知っている人はいますか?

助けてくれてありがとう、どうもありがとう:)

4

2 に答える 2

0

これは、データベースのデフォルトの動作です。それを行うには、何らかの回避策を考え出す必要があります。

アイデア:CakePHP:IDによるグループ化と日付による注文

于 2012-05-23T14:36:39.240 に答える
0

これは機能しますか:

$values = $this->PtlUserdata->find('all', array(

'fields' => array(

    'PtlUserdata.field', 
    'PtlUserdata.value',
    'max(PtlUserdata.timestamp)'

 ), 

 'conditions' => array(

     'PtlUserdata.user_id' => $user->get('id'),
     'PtlUserdata.timestamp' => 'max(PtlUserdata.timestamp)',
 ),

 'group' => array(
      'PtlUserdata.field',
      'PtlUserdata.timestamp'
      )

));

私はこれをテストする機会がありませんでしたが、あなたは間違いなくによってグループ化する必要がありますPtlUserdata.timestamp

于 2012-05-23T17:31:15.127 に答える