1

さまざまなテーブルのデータが必要です。私はcakephpの$hasMany変数を使用してそれらをバインドします。データは正常にフェッチされます。しかし、テーブルからの結果を並べ替える必要があり$hasManyます。

たとえば。私は2つのテーブルを持っています

  • Survey
  • Questions

これで、テーブルには、、などのSurvey調査に関連するデータが含まれ、テーブルには関連する調査の質問が含まれます。質問テーブルを調査モデルの調査にバインドします。これで、テーブルに名前のフィールドができました。この順序でデータをフェッチする必要があります。titleidpurposeQuestionsQuestionsordering

どうすればそのように取得できますか?

私を助けてください。

4

2 に答える 2

2

データをdbからフェッチするときにデータを直接ソートする場合

モデル内のテーブル間にリレーションを追加するときに、デフォルトの順序を定義できます。調査モデルの場合:

var $hasMany = array(
    'Question' => array(
        'order' => 'ordering DESC'
    )
);

http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#hasmanyを参照してください。

条件付き配列でコントローラーからデータを取得するときにカスタム順序を定義することもできます。http: //book.cakephp.org/2.0/en/models/retrieveing-your-data.html#find

$conditions = array(
    'order' => array('Question.ordering DESC')
);

paginatorコンポーネントを使用して結果をページ付けする場合は、次の例のように設定できます。book.cakephp.org/ 2.0 / en / core-libraries / components / pagination.html#query-setup:

public $paginate = array(
    'order' => array(
       'Question.ordering' => 'desc'
    )
);

ビューに表示されるデータを並べ替える場合

ここでは、ページネーションヘルパーを(コントローラーのページネーションコンポーネントと一緒に)次のように使用できます。

echo $this->Paginator->sort('Question.ordering');

book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#creating-sort-linksを参照してください

最後の2つのリンクの「http://」を削除して申し訳ありませんが、3つ以上のリンク(<10 rep)を投稿することは許可されていません。

于 2013-01-17T13:18:21.277 に答える
0

CakePHP では、関連付けられたテーブルで並べ替えることができます。ただし、列で並べ替える必要がある場合は、ビューで次のようなものを使用する必要があります。

<?php echo $this->Paginator->sort('Question.ordering'); ?>
于 2013-01-17T11:45:01.090 に答える