0

CakePHP で、(paginator コンポーネントによって作成された) インデックス リストをシーケンス ASC で並べ替えたいのですが、うまくいきません。CakePHP のドキュメント ( http://book.cakephp.org/2.0/en/core-libraries/components/pagination.html#query-setup ) にクエリのセットアップが表示されている場合、ページネーターの設定は次のようになります。

public function index()
{
    $this->Paginator->settings = array(
        'Attraction' => array(
            'conditions' => array(
                'Attraction.deleted' => null
            ),
            'order' => array(
                'Attraction.sequence ASC',
                'Attraction.id ASC'
            ),
            'limit' => 15
        )
    );

    $attractions = $this->Paginator->paginate('Attraction');

    $this->set('attractions', $attractions);
}

しかし、インデックス ファイルをロードするたびに、リストは ID でソートされ、「順序」設定は無視されます。ページネーター設定の「注文」アイテムに何か問題があるかどうか誰か教えてもらえますか? ;) どうも!

4

2 に答える 2

0

試す

'order' => array(
     'Attraction.sequence' => 'asc',
     'Attraction.id' => 'asc'
),

編集:

ソート方向は配列値である必要があり、フィールド名はインデックスである必要があります。ドキュメントで見つけた例は、常にそれを示しています

于 2014-02-11T19:48:26.187 に答える
0

オプション配列に Attraction インデックスを含める必要はないと思います。つまり、オプション配列は次のようにする必要があると思います。

$this->Paginator->settings = array(
     'conditions' => array(
         'Attraction.deleted' => null
     ),
     'order' => array(
         'Attraction.sequence ASC',
         'Attraction.id ASC'
     ),
    'limit' => 15
);
于 2014-02-11T19:58:49.663 に答える