Domanda

Voglio creare una ricerca avanzata, simile a questa:

  • Casella di testo: trova
  • Menu a discesa: ricerca per: nome, posizione o telefono
  • Menu a discesa: ordina per asc o dic
  • Menu a discesa: ordina per nome, posizione o telefono
  • Menu a discesa: cerca tra le date (se selezionate)

Qual è il modo corretto per aggiungere questi parametri nella funzione per il modello?

Ho trovato questa soluzione:

class ShopsModel extends Model {

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

}

Modifica : sto parlando delle variabili - findBy($find, $searchBy, $order, $sort, $betweenDate) - ho bisogno di tutti quei parametri o esiste una soluzione alternativa?

È stato utile?

Soluzione

La tua soluzione sembra essere a posto.Ma puoi anche usare il motivo decoratore, quindi potresti fare la seguente 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

Penso che ciò che stai descrivendo dovrebbe essere fatto insieme a una libreria javascript come knockoutjs o backbonejs.

Nettuts ha coperto knockoutjs e una dimostrazione è disponibile qui: http:// nettuts.s3.amazonaws.com / 1034_ko / demo / index.html

Se stai utilizzando uno schema come Yii, puoi cercare su Google tutorial come questo 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