繁体   English   中英

CakePHP- cakeDC搜索插件实现

[英]CakePHP- cakeDC search plugin implementation

我目前正试图找到一种在我的应用程序中实现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'),

    );

任何帮助都表示赞赏,即使它只是指向教程的链接。 谢谢

当我编写插件时,我将很多有用的例子直接放到插件的测试用例中。 因此,请查看行为测试文件,了解如何使用查询类型方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM