1

これがシナリオです。Postsモデルがあり、各投稿にはMetaを介して添付されて$hasManyいます。メタモデルには、ビューカウンター、ダウンロードカウンターなどが含まれます。

これは、ユーザーが投稿にアクセスするたびに投稿が更新されないようにするためにこの方法で行われます。また、最近変更された投稿が存在する別のインデックスがあるため、訪問ごとに投稿を変更すると、「最近変更された」の目的が無効になります。 "インデックスを作成して、viewsdownloadsをメタに保存します。

ダウンロードのようにメタモデルからのデータを使用してページ付け付きの投稿インデックスビューを注文し、投稿がダウンロードごとに並べ替えられるようにするにはどうすればよいですか?

それが十分に明確であることを願っています。さらにデータが必要な場合は、以下にコメントを残してください。

4

1 に答える 1

1

まず、次のようにページ番号の設定を宣言する必要があります

   $this -> paginate = array(
            'limit' => 3, // your desired limitation
            'contain' => array('Meta'),
            'fields' => array(
                'Post.title',
                'Post.date_published',
                ...,
                'Meta.downloads',
                'Meta.views'
            ),
            'order' => 'Meta.downloads {ASC|DESC}'
        );

次に、次のようにページ分割できます。

$this -> set('posts', $this -> paginate('Post'));

モデルがPostおよびMetaと呼ばれると仮定します。

編集 これが機能するためには(paginate配列のcontainキー)、メタモデルにContainable動作を追加する必要があります。

public $actsAs = array('Containable');
于 2012-07-05T18:29:46.193 に答える