使用占位符cakephp 3.X分页
我搜索了两天,但没有找到答案。我使用带有占位符(%$string%)的查询来搜索客户 在控制器中:使用占位符cakephp 3.X分页,php,pagination,placeholder,Php,Pagination,Placeholder,我搜索了两天,但没有找到答案。我使用带有占位符(%$string%)的查询来搜索客户 在控制器中: ` public function searchName() { $data = $this->Kunden->find()->where([ 'Kunden.name LIKE' => '%'.\filter_input(\INPUT_POST, 'name', \FILTER_DEF
` public function searchName()
{
$data = $this->Kunden->find()->where([
'Kunden.name LIKE' => '%'.\filter_input(\INPUT_POST, 'name', \FILTER_DEFAULT).'%']);
$this->set(\compact('data'), $this->paginate($data));
$this->set('_serialize', ['data']);
}
`
在search_name.ctp中:
<?php foreach ($data as $suche): ?>
<tr>
<td><?= $this->Number->format($suche->Kundennummer,['precision' => 0, 'pattern' => '####']) ?></td>
<td><?= h($suche->Anrede) ?></td>
<td><?= h($suche->Name) ?></td>
<td><?= h($suche->Vorname) ?></td>
<td><?= h($suche->Ansprechpartner) ?></td>
<td><?= h($suche->Strasse_Nr) ?></td>
<td><?= h($suche->PLZ) ?></td>
<td class="actions">
<?= $this->Html->link(__('View'), ['action' => 'view', $suche->Kundennummer]) ?>
<?= $this->Html->link(__('Edit'), ['action' => 'edit', $suche->Kundennummer]) ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php
$this->Paginator->options(array(
'url' => array(
'data' => $data)));
?>
<div class="paginator">
<ul class="pagination">
<?= $this->Paginator->first('<< ' . __('erste Seite')) ?>
<?= $this->Paginator->prev('< ' . __('vor')) ?>
<?= $this->Paginator->numbers() ?>
<?= $this->Paginator->next(__('next') . ' >') ?>
<?= $this->Paginator->last('>> ' . __('letzte Seite')) ?>
<?= $this->Paginator->number(' ' . __('gehe zu Seite:')) ?>
</ul>
<p><?= $this->Paginator->counter() ?></p>
</div>
</div>
第一页显示%$string%找到的客户列表,但在接下来的几页中,我将从表中获取所有客户
我打印数组$data foreach pagebuildung,占位符的值从第一页更改为第二页
首页:。。。限制10偏移量0[参数]=>数组([:c0]=>数组([值]=>%ab%[类型]=>[占位符]=>c0)
第二页:…限制10个偏移量10个[params]=>数组([:c0]=>数组([value]=>%%[type]=>[placeholder]=>c0)
我能做些什么来保持价值
感谢您的帮助。字符串模板与查询无关。您的问题是什么?您的问题还不清楚。执行的查询是什么以及应该如何生成查询?例如:我搜索名称中包含%ab%的所有客户。如果不分页,我会得到一个名为“ab”的约50名客户的列表。当我使用limi分页时t“10”前10个客户有“ab”,页面计数器显示5页。当我转到第二页时,我得到的客户也没有“ab”und计数器显示350页,这是所有客户的页数。通过创建第二页,占位符的值将丢失,因此将显示所有客户…查询是在searchName()中生成的,s.o.。$字符串通过post来自表单。当我不使用post和write时:$data=$this->Kunden->find()->where(['Kunden.name LIKE'=>“%ab%”];t适用于所有页面OK,对于创建第二个页面,再次执行查询。但是现在$u POST为空,因为查询不是从表单调用的,而是从paginator调用的……我如何使用?