CakePHP:ArraySource + Paginator

时间:2014-01-07 13:03:24

标签: cakephp pagination cakephp-2.3

使用CakePHP

我想使用带有Paginator组件的数组。我正在使用Datasources插件,我创建了 Fake 模型:

<?php

/**
 * A Fake model.
 */
class Fake extends AppModel {
    public $useDbConfig = 'arraySource';

    public $records = array(
        array('id' => 1, 'name' => 'Alfa', 'height' => 300, 'width' => 300),
        array('id' => 2, 'name' => 'Beta', 'height' => 200, 'width' => 100),
        array('id' => 3, 'name' => 'Gamma', 'height' => 450, 'width' => 200),
        array('id' => 4, 'name' => 'Omega', 'height' => 600, 'width' => 50)
    );
}

在控制器上:

<?php

class ExampleController extends AppController {
    public $components = array('Paginator');
    public $uses = array('Fake');

    public function justatest() {
        $this->Paginator->settings = array(
            'order' => array('id' => 'desc'),
            'limit' => 2
        );
        $records = $this->Paginator->paginate('Fake');
        $this->set(compact('records')); 
    }

现在,组件正确检索数据。 “限制”条件正常工作。什么不起作用的是“订单”条件:它不起作用或我指示的条件,或根据用户输入对数据进行排序。

我无法理解我是否做错了或者我无法对使用ArraySource获得的数据进行排序。


EDIT 观点:

<table>
    <tr>
        <th><?php echo $this->Paginator->sort('id'); ?></th>
        <th><?php echo $this->Paginator->sort('name'); ?></th>
        <th><?php echo $this->Paginator->sort('height'); ?></th>
        <th><?php echo $this->Paginator->sort('width'); ?></th>
    </tr>
    <?php foreach($records as $v): ?>
    <tr>
        <td><?php echo $v['Fake']['id']; ?></td>
        <td><?php echo $v['Fake']['name']; ?></td>
        <td><?php echo $v['Fake']['height']; ?></td>
        <td><?php echo $v['Fake']['width']; ?></td>
    </tr>
    <?php endforeach; ?>
</table>

1 个答案:

答案 0 :(得分:0)

从头顶开始,试试这个:

$this->Paginator->settings = array(
        'order' => array('id DESC'),
        'limit' => 2
    );

根本不确定