Chcę utworzyć wyszukiwanie zaawansowane, coś takiego:
- Pole tekstowe: Znajdź
- Menu rozwijane: szukaj według: nazwy, lokalizacji lub telefonu
- Rozwijane: Zamów według Asc lub Dec
- Lista rozwijana: Sortuj według nazwy, lokalizacji lub telefonu
- Lista rozwijana: Wyszukaj między datami (jeśli wybrano)
Jaki jest właściwy sposób dodania tych parametrów w funkcji dla modelu?
Wymyśliłem to rozwiązanie:
class ShopsModel extends Model {
findBy($find, $searchBy, $order, $sort, $betweenDate) {
// some MySQL query here...
}
}
Edytuj: mówię o zmiennych – findBy($find, $searchBy, $order, $sort, $betweenDate)
– czy potrzebuję wszystkich tych parametrów, czy istnieje alternatywne rozwiązanie?
2 odpowiedzi
Twoje rozwiązanie wydaje się być w porządku. Ale możesz również użyć wzoru dekoratora, dzięki czemu możesz wykonać następujące zapytanie:
$shops = new ShopsModel();
$results = $shops->search('name', 'Tadeck')
->order_by('name', 'asc')
->between_dates('2012-02-01', '2012-03-14')
->fetch_all();
Myślę, że to, co opisujesz, powinno być zrobione w połączeniu z biblioteką javascript, taką jak knockoutjs lub backbonejs.
Nettuts omówił knockoutjs, a demonstracja jest dostępna tutaj: http://nettuts.s3. amazonaws.com/1034_ko/demo/index.html
Jeśli używasz wzorca takiego jak Yii, możesz poszukać w Google samouczków takich jak ten http://aiao.be/2012/01/29/knockout-js-with-the-yii-framework-hello-world-example/
Podobne pytania
Nowe pytania
php
PHP to szeroko stosowany, wysokopoziomowy, dynamiczny, zorientowany obiektowo i interpretowany język skryptowy przeznaczony głównie do tworzenia stron WWW po stronie serwera. Używane w przypadku pytań dotyczących języka PHP.