0

我想创建一个高级搜索,如下所示:

  • 文本框:查找
  • 下拉列表:搜索方式:姓名、位置或电话
  • 下拉菜单:按 Asc 或 Dec 排序
  • 下拉列表:按姓名、位置或电话排序
  • 下拉:在日期之间搜索(如果选择)

在模型的函数中添加这些参数的正确方法是什么?

我想出了这个解决方案:

class ShopsModel extends Model {

  findBy($find, $searchBy, $order, $sort, $betweenDate) {
   // some MySQL query here...
  }

}

编辑:我说的是变量——findBy($find, $searchBy, $order, $sort, $betweenDate)我需要所有这些参数还是有替代解决方案?

4

2 回答 2

1

您的解决方案似乎没问题。但是您也可以使用装饰器模式,因此您可以进行以下查询:

$shops = new ShopsModel();
$results = $shops->search('name', 'Tadeck')
    ->order_by('name', 'asc')
    ->between_dates('2012-02-01', '2012-03-14')
    ->fetch_all();
于 2012-02-18T00:18:53.120 回答
0

我认为您所描述的内容应该与诸如 knockoutjs 或backbonejs 之类的javascript库一起完成。

Nettuts 已经涵盖了 knockoutjs,并且可以在此处获得演示:http: //nettuts.s3.amazonaws.com/1034_ko/demo/index.html

如果您使用的是 Yii 之类的模式,您可以在 Google 上搜索类似这样的教程http://aiao.be/2012/01/29/knockout-js-with-the-yii-framework-hello-world-example/

于 2012-02-18T15:33:07.537 回答