1

我有以下代码来获取与另一个与实际对象相关的模型相关的特殊模型:(我想要 Entry-model - 在 Rubric-model-view 中)

$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 回答