2014-01-07 3 views
0

с CakePHP Я хочу использовать массив с компонентом Paginator. Я использую Datasources плагин, и я создал модель Поддельный:CakePHP: ArraySource + Paginator

<?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')); 
    } 

Теперь данные корректно получены с помощью компонента. Условие «limit» работает правильно. Что не работает, это условие «порядок»: оно не работает или условие, которое я указал, или сортировать данные в соответствии с пользовательским вводом.

Я не могу понять, если я сделал что-то неправильно или не могу сортировать данные, полученные с помощью 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> 

ответ

0

справа от верхней части головы, попробуйте это:

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

Не уверен, что у всех

+0

Спасибо @Justin, но, к сожалению, это не работает. Но это именно то, что не работает вообще. Например, он не работает или нажимает ссылку «сортировать». Вместо этого пейджинг работает правильно. –

Смежные вопросы