В настоящее время я пытаюсь найти способ реализовать плагин поиска cakeDC в моем приложении, но мне трудно понять, что сантехника должна быть выполнена, прежде чем я смогу заставить ее работать (красиво) с моим приложением.
Что нужно учитывать: поиск должен быть «живым» поиском. Записанные записи должны быть разбиты на страницы. Поиск будет выполняться с использованием выбранного критерия (id, name и т. Д. Фактический ключ без значения) и потребует ввода пользователя, который мы будем назовите «запрос» на данный момент ..
вот мой код до сих пор.
Код модели:
public $filterArgs = array( 'query' => array('type' => 'query', 'method' => 'filterQuery'), ); public function filterQuery($data = array()) { $filter = $data['query']; $criteria = $data['criteria']; if(empty($filter)){ return array(); } $cond = array( 'OR' => array( $this->alias . $criteria. 'LIKE' => '%' . $filter . '%', //ie. criteria represents a field $ filter is the data to search/match )); return $cond; }
Так что у меня возникают проблемы с тем, как мой метод filterQuery получит аргумент $ data. Это обычные данные запроса? Я хочу получить доступ к представленным значениям.
Вот соответствующий код для представления:
<div id="search-container"> <?php //echo $this->Form->create(false,array('type'=>'post','default'=>false)); echo $this->Form->input('criteria',array( 'label'=>'Search Criteria', 'options' => array( 'id'=> 'By ID', 'name' => 'By Name', 'blood_group_id' => 'By Blood Type', 'type' => 'By Donor Type', 'age' => 'By Age', 'gender' => 'By Gender' ) )); ?> <?php echo $this->Form->input('query', array('type' => 'text', 'id' => 'query', 'name' => 'query', 'label' => false, 'placeholder' => 'Search')); ?>
[РЕДАКТИРОВАТЬ]
Конечно, в моем контроллере у меня также есть эта настройка
Search.Prg Component is loaded
public $presetVars = array( 'query' => array('type' => 'value'), 'criteria' => array('type' => 'value'), );
Любая помощь приветствуется, даже если это просто ссылка на учебник. благодаря
Когда я написал плагин много полезных примеров, я прямо ввел в тестовые примеры плагина. Поэтому просмотрите файл теста поведения, чтобы узнать, как использовать метод типа запроса.