cakephp搜索插件基本用法
我希望你能帮助我。我已经完成了所有步骤,如“此处”,但搜索者什么都不做 我的项目是关于一个用户的列表,我想筛选字段“apellidos”或“dni” 在我的控制器中,我声明了组件,如下所示:cakephp搜索插件基本用法,cakephp,cakephp-search-plugin,cakephp-2.x,Cakephp,Cakephp Search Plugin,Cakephp 2.x,我希望你能帮助我。我已经完成了所有步骤,如“此处”,但搜索者什么都不做 我的项目是关于一个用户的列表,我想筛选字段“apellidos”或“dni” 在我的控制器中,我声明了组件,如下所示: public function index() { $this->Prg->commonProcess(); $this->paginate = array( 'conditions' => $this->User->parseCriteria($this
public function index() {
$this->Prg->commonProcess();
$this->paginate = array(
'conditions' => $this->User->parseCriteria($this->passedArgs));
$this->set('users', $this->paginate());
$this->User->recursive = 0;
$this->User->order = 'User.cod_cliente';
$this->User->conditions = 'User.nombre';
if($this->Session->read('Auth.User.group_id')==5)
{
//$this->set('categorias', $this->User->find('all',array('fields'=>array('group_id','cod_cliente','nombre','apellidos','dni','id'))));
}else
{
$this->User->conditions = array('User.cod_centro'=>$this->Session->read('Auth.User.cod_centro'));
//$this->set('categorias', $this->User->find('all',array('fields'=>array('group_id','cod_cliente','nombre','apellidos','dni','id'),'conditions'=>array('User.cod_centro'=>$this->Session->read('Auth.User.cod_centro')))));
}
$this->set('categorias', $this->Paginator->paginate());
$this->set('title_for_layout', __('Listado de usuarios')." - ".__('Administración'));
}
public $presetVars = array(
array('field' => 'apellidos', 'type' => 'value'),
array('field' => 'dni', 'type' => 'value'),);
public $actsAs = array('Containable','Search.Searchable','Acl' => array('type' => 'requester'));
public $filterArgs = array(
array('name' => 'apellidos', 'type' => 'query', 'method' => 'filterApellidos'),
array('name' => 'dni', 'type' => 'query', 'method' => 'filterDni'),
);
以下是功能:
public function filterApellidos($data, $field = null) {
if (empty($data['apellidos'])) {
return array();
}
$apellidosField = '%' . $data['apellidos'] . '%';
return array(
'OR' => array(
$this->alias . '.apellidos LIKE' => $apellidosField,
));
}
public function filterDni($data, $field = null) {
if (empty($data['dni'])) {
return array();
}
$dniField = '%' . $data['dni'] . '%';
return array(
'OR' => array(
$this->alias . '.dni LIKE' => $dniField,
));
}
// Built a list of search options (unless you have this list somewhere else)
public function __construct($id = false, $table = null, $ds = null) {
$this->statuses = array(
'' => __('All', true),
0 => __('Bid', true),
1 => __('Cancelled', true),
2 => __('Approved', true),
3 => __('On Setup', true),
4 => __('Field', true),
5 => __('Closed', true),
6 => __('Other', true));
parent::__construct($id, $table, $ds);
}
最后,我认为:
<div><?php
echo $this->Form->create('Usuario', array(
'url' => array_merge(array('action' => 'index'), $this->params['pass'])
));
echo $this->Form->input('apellidos', array('div' => false, 'empty' => true)); // empty creates blank option.
echo $this->Form->input('dni', array('div' => false, 'empty' => true));
echo $this->Form->submit(__('Search', true), array('div' => false));
echo $this->Form->end();
?>
</div>
你能告诉我我做错了什么吗?非常感谢
贝伦你能详细说明一下搜索插件做得不对的地方吗?您是否收到错误,它是否从不返回任何结果或仅返回未过滤的结果?如果我们知道出了什么问题,我们会有更好的帮助。当然,@oldskool。插件从不返回任何结果;我在搜索的字段中写了一些东西,按下按钮,它似乎做了一些事情,但实际上没有返回任何东西。谢谢