Ricerca avanzata nel modello (MVC)
-
27-10-2019 - |
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?
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/