Recherche avancée dans le modèle (MVC)
-
27-10-2019 - |
Question
Je veux créer une recherche avance, quelque chose comme ceci:
- Textbox: Recherche
- Dropdown: recherche: nom, adresse ou par téléphone
- Dropdown: Trier par Asc ou DEC
- Dropdown: Trier par nom, lieu ou par téléphone
- Dropdown: Recherche entre les dates (si elle est sélectionnée)
Quelle est la bonne façon d'ajouter ces paramètres dans la fonction pour le modèle?
Je suis venu avec cette solution:
class ShopsModel extends Model {
findBy($find, $searchBy, $order, $sort, $betweenDate) {
// some MySQL query here...
}
}
Modifier : Je parle des variables - findBy($find, $searchBy, $order, $sort, $betweenDate)
- Ai-je besoin de tous ces paramètres ou est-il une solution de rechange
La solution
Votre solution semble être ok. Mais vous pouvez aussi utiliser décorateur modèle, de sorte que vous pouvez faire la requête suivante:
$shops = new ShopsModel();
$results = $shops->search('name', 'Tadeck')
->order_by('name', 'asc')
->between_dates('2012-02-01', '2012-03-14')
->fetch_all();
Autres conseils
Je pense que ce que vous décrivez doit être fait en collaboration avec une bibliothèque javascript comme knockoutjs ou backbone.js.
Nettuts a knockoutjs couverts et une démonstration est disponible ici: http: // Nettuts .s3.amazonaws.com / 1034_ko / demo / index.html
Si vous utilisez un modèle comme Yii, vous pouvez google pour des tutoriels comme celui-ci http://aiao.be/2012/01/29/knockout-js-with-the-yii-framework-hello-world-example/