1. Go to this page and download the library: Download carlosmaiello/search library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
carlosmaiello / search example snippets
Plugin::load('Search');
use Search\Manager;
class ExampleTable extends Table {
public function initialize(array $config)
{
// Add the behaviour to your table
$this->addBehavior('Search.Search');
}
// Configure how you want the search plugin to work with this table class
public function searchConfiguration()
{
$search = new Manager($this)
->value('author_id', [
'field' => $this->aliasField('author_id')
])
// Here we will alias the 'q' query param to search the `Articles.title`
// field and the `Articles.content` field, using a LIKE match, with `%`
// both before and after.
->like('q', [
'before' => true,
'after' => true,
'field' => [$this->aliasField('title'), $this->aliasField('content')]
])
->callback('foo', [
'callback' => function ($query, $args, $manager) {
// Modify $query as
public function index()
{
$query = $this->Articles
// Use the plugins 'search' custom finder and pass in the
// processed query params
->find('search', $this->Articles->filterParams($this->request->query))
// You can add extra things to the query if you need to
->contain(['Comments'])
->where(['title IS NOT' => null]);
$this->set('articles', $this->paginate($query));
}
public function initialize()
{
parent::initialize();
if ($this->request->action === 'index') {
$this->loadComponent('Search.Prg');
}
}
echo $this->Form->create();
// You'll need to populate $authors in the template from your controller
echo $this->Form->input('author_id');
// Match the search param in your table configuration
echo $this->Form->input('q');
echo $this->Form->button('Filter', ['type' => 'submit']);
echo $this->Html->link('Reset', ['action' => 'index']);
echo $this->Form->end();