Расширенный поиск в модели (MVC) - PullRequest
0 голосов
/ 18 февраля 2012

Я хочу создать расширенный поиск, что-то вроде этого:

  • Текстовое поле: Найти
  • Выпадающий список: поиск по: имени, местоположению или телефону
  • Выпадающий список: Заказ по Asc или Dec
  • Раскрывающийся список: Сортировка по имени, местоположению или телефону
  • Раскрывающийся список: Поиск между датами (если выбрано)

Как правильнодобавить эти параметры в функцию для модели?

Я придумал это решение:

class ShopsModel extends Model {

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

}

Редактировать : я говорю о переменных - findBy($find, $searchBy, $order, $sort, $betweenDate) - мне нужны все эти параметры илиесть альтернативное решение?

Ответы [ 2 ]

1 голос
/ 18 февраля 2012

Ваше решение, кажется, в порядке.Но вы также можете использовать шаблон декоратора, чтобы вы могли сделать следующий запрос:

$shops = new ShopsModel();
$results = $shops->search('name', 'Tadeck')
    ->order_by('name', 'asc')
    ->between_dates('2012-02-01', '2012-03-14')
    ->fetch_all();
0 голосов
/ 18 февраля 2012

Я думаю, что вы описываете, должно быть сделано в сочетании с библиотекой javascript, такой как knockoutjs или backbonejs.

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/

...