在蛋糕php 3.0

时间:2015-05-22 12:14:22

标签: cakephp-3.0

我在cakephp 3.x上构建了一个web应用程序,我也希望对该数据进行搜索,并且分页应该根据搜索结果工作。 任何人都可以提供最好的解决方案吗?

2 个答案:

答案 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]]);
}

希望它适合你