Domanda

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?

È stato utile?

Soluzione

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();

Altri suggerimenti

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/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top