我在cakephp 3.x上构建了一个web应用程序,我也希望对该数据进行搜索,并且分页应该根据搜索结果工作。 任何人都可以提供最好的解决方案吗?
答案 0 :(得分:4)
假设您有一个文章控制器,并且您希望将搜索的文章分页为可选项:
class ArticlesController extends AppController
{
public $paginate = [
'limit' => 25,
'order' => [
'Articles.title' => 'asc'
]
];
public function initialize()
{
parent::initialize();
$this->loadComponent('Paginator');
}
public function index($search = null)
{
$query = $this->Articles->find();
if($search){
$query->where(['title LIKE' => '%'.$search.'%']);
}
$this->set('articles', $this->paginate($query));
}
}
答案 1 :(得分:2)
我不知道这是否是最佳解决方案。 但我这样做。
在我的index.ctp中,我放了一个搜索表单
<?= $this->Form->create('search') ?>
<fieldset>
<?php
echo $this->Form->input('Search');
?>
</fieldset>
<?= $this->Form->button(__('Submit')) ?>
<?= $this->Form->end() ?>
在我的控制器中
if ($this->request->is('post')) {
$pes = '%'.$this->request->data('search').'%';
$customers = $customers->where(['OR' => ['name LIKE' => $pes, 'lastname LIKE' => $pes]]);
}
希望它适合你