这是我的index()函数:
$this->paginate = [
'conditions' => [
'Items.state_id' => $state,
],
'contain' => ['Accounts', 'Creditors', 'States', 'Bankaccounts' => ['joinType' => 'LEFT']],
'order' => ['Items.account_id ASC', 'Items.creditor_id ASC', 'Items.payuntil ASC']
];
$this->set('items', $this->paginate($this->Items));
$this->set('_serialize', ['items']);
在我想使用第2页的分页链接之前,它正常工作:
我的观点:
<div class="paginator">
<ul class="pagination">
<?= $this->Paginator->prev('< ' . __('vorherige')) ?>
<?= $this->Paginator->numbers() ?>
<?= $this->Paginator->next(__('nächste') . ' >') ?>
</ul>
<p><?= $this->Paginator->counter('Seite {{page}} von {{pages}}') ?></p>
</div>
这是浏览器中的输出:
<a href="/items?page=2&sort=0&direction=Items.account_id+ASC">2</a>
但是这会导致sql错误:
WHERE
Items.state_id = 1
ORDER BY
asc
LIMIT
20 OFFSET 0
有一个空的ORDER BY选项。
如果我将上述链接更改为:/ items?page = 2 它按预期工作。
那么这里有什么问题? 我怎样才能解决这个问题? 请建议: - )
答案 0 :(得分:1)
正确的语法是
'order' => ['Items.account_id' => 'ASC', 'Items.creditor_id' => ' ASC', 'Items.payuntil' => ' ASC']
你会停止收到错误,但你会发现这个问题: