使用占位符cakephp 3.X分页

使用占位符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

我搜索了两天,但没有找到答案。我使用带有占位符(%$string%)的查询来搜索客户

在控制器中:

  ` 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调用的……我如何使用?