質問

I want to create a Advance Search, something like this:

  • Textbox: Find
  • Dropdown: search by: name, location or telephone
  • Dropdown: Order By Asc or Dec
  • Dropdown: Sort by name, location or telephone
  • Dropdown: Search between dates (if selected)

What is the proper way to add those parameters in the function for the model?

I have came up with this solution:

class ShopsModel extends Model {

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

}

Edit: I am talking about the variables - findBy($find, $searchBy, $order, $sort, $betweenDate) - do I need all those parameters or is there alternative solution?

役に立ちましたか?

解決

Your solution seems to be ok. But you can also use decorator pattern, so you could make the following query:

$shops = new ShopsModel();
$results = $shops->search('name', 'Tadeck')
    ->order_by('name', 'asc')
    ->between_dates('2012-02-01', '2012-03-14')
    ->fetch_all();

他のヒント

I think what you are describing ought to be done in conjunction with a javascript library like knockoutjs or backbonejs.

Nettuts has covered knockoutjs and a demonstration is available here: http://nettuts.s3.amazonaws.com/1034_ko/demo/index.html

If you are using a pattern like Yii,you can google for tutorials like this one http://aiao.be/2012/01/29/knockout-js-with-the-yii-framework-hello-world-example/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top