Pregunta

Quiero crear una búsqueda anticipada, algo como esto:

  • Textbox: Buscar
  • Desplegable: buscar por: nombre, ubicación o teléfono
  • Desplegable: orden por ASC o DEC
  • Desplegable: ordenar por nombre, ubicación o teléfono
  • Desplegable: búsqueda entre fechas (si se selecciona)

¿Cuál es la forma correcta de agregar esos parámetros en la función para el modelo?

Se me ocurrió esta solución:

class ShopsModel extends Model {

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

}

Editar: Estoy hablando de las variables - findBy($find, $searchBy, $order, $sort, $betweenDate) - ¿Necesito todos esos parámetros o hay una solución alternativa?

¿Fue útil?

Solución

Tu solución parece estar bien. Pero también puede usar el patrón del decorador, para que pueda hacer la siguiente consulta:

$shops = new ShopsModel();
$results = $shops->search('name', 'Tadeck')
    ->order_by('name', 'asc')
    ->between_dates('2012-02-01', '2012-03-14')
    ->fetch_all();

Otros consejos

Creo que lo que está describiendo debe hacerse junto con una biblioteca de JavaScript como Knockoutjs o Backbonejs.

Nettuts ha cubierto KnockoutJS y una demostración está disponible aquí: http://nettuts.s3.amazonaws.com/1034_ko/demo/index.html

Si está utilizando un patrón como YII, puede buscar en Google tutoriales como este http://aiao.be/2012/01/29/knockout-js-with-the-yii-framework-hello-world-example/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top