CakePHP架构问题 - 编写模型的自定义搜索

时间:2011-02-24 19:59:20

标签: php search cakephp

我3天前开始使用CakePHP,现在我正处于尖峰解决方案的中间位置。我很快就学会了,但是我脑子里的一些功能还不清楚。

我正在寻找关于如何继续下去的一些建议。

我正在编写搜索,用户可以在众多领域(10+)中为教员输入数据。他们可以输入相关信息,例如名字,姓氏或部门/部门,这些信息都在模型中正确关联。

我正在寻找使用LIKE语句并执行搜索的查询。我正在考虑攻击Faculty Model以开始编写或扩展可以执行搜索的查找功能?

这是正确的做法吗?我应该为搜索编写自定义函数吗?还有另一种方法吗?

我故意遗漏了很多关于我项目的细节,因为我现在还在学习框架,并希望听到最好的选择 - 我不想受到设计的限制。但基本上,我有一个表格,其中包括姓名,出生日期,教师会员等几个领域,我需要用户能够输入信息并通过我的教师进行搜索。

如果有人能指出我正确的方向,我们将不胜感激。我一直在做很多阅读,我不知道该怎么做。

感谢。

3 个答案:

答案 0 :(得分:0)

有很多方法可以用Cake来处理这个问题,但好消息是,你可能没必要。 Cake有很多搜索插件可以让你更容易思考。

您可能想要尝试Neil Crooke's "Searchable Plugin"用于Cake。

Neil的插件非常可靠,his post on the subject

答案 1 :(得分:0)

这就是我处理搜索的方式。如果您只有一个文本框可以接受任何字段的数据,而不是$ this-> data ['Faculty'],则循环遍历您希望能够搜索的字段数组。

foreach ($this->data['Faculty'] as $field => $value){
          $conditions[$field . ' LIKE'] => '%' . $value . '%';
}
$results = $this->Faculty->find('all',
    array(
        'conditions'=>array('OR'=>$conditions), //or use AND here depending on need
    )
);
$this->set('results',$results);

答案 2 :(得分:-1)

我想做的事情非常简单。这根本不是一个架构问题,我只需要阅读模型并回答我自己的问题。

具体来说,我需要有关复杂查找条件的帮助,而CakePHP书中有一节介绍:

http://book.cakephp.org/view/1030/Complex-Find-Conditions#!/view/1030/Complex-Find-Conditions