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