1

実際のオブジェクトに関連する別のモデルに関連する特別なモデルを取得するために、次のコードがあります:(エントリモデルが必要です-ルーブリックモデルビューで)

$this->paginate = array(
            'Entrieslocation' => array(
                'conditions' => array('Entrieslocation.rubric_id' => $this->Rubric->id, 'Entrieslocation.subrubric_id' => '0'),
                'joins' => array(
                    array(
                        'alias' => 'Entry',
                        'table' => 'entries',
                        'type' => 'INNER',
                        'conditions' => 'Entry.id = Entrieslocation.entry_id'
                    )
                )
            )
        );

それから私はこのようなものでそれを得ることができると思いました:

$this->set('entries', $this->paginate('Entry'));

しかし、変数は空です。ビューのページネーション内のエントリにアクセスするにはどうすればよいですか?

上記のコードで生成されたクエリは正しいので、phpmyadminにクエリを入力して確認しました。では、どうすれば結果にアクセスできますか(エントリのみ)?

ご協力いただきありがとうございます :)

4

1 に答える 1

1

まず、コントローラークラスの下に$paginate変数を定義する必要があります。例えば

class UsersController extends AppController {

     public $paginate = array();

}

次に、アクションで次のパターンに従って、ページ付けされた結果を取得します。

$this->paginate = array(
            'recursive' => -1,
            'limit' => 10,
            'conditions' => array('Your conditions'),
            'fields'     => array('Entry.*, Entrieslocations.*'),
            'joins' => array(
                array(
                  'table' => 'Entrieslocations',
                  'alias' => 'Entrieslocation',
                  'type' => 'inner',
                  'conditions' => 'Entry.id = Entrieslocation.entry_id'
                 ),
            ), 
            'order' => array(
                'Entry.id' => 'desc'
            )

        );


$entries = $this->paginate('Entry');

結果セットをビューに渡すには、次を使用します。

$this->set('entries', $entries);
于 2013-01-29T04:42:26.977 に答える