Cita:
Iniciado por masterpuppet No se si te entendi bieni
miktrv, pero podrias implementar un finder generico y varios finders que sean proxy al generico, algo asi:
Código PHP:
Ver originalpublic function find
($where = array(), $order = array(), $page = false) {
...
}
public function findByColor
($color, $order = array(), $page = false) {
return $this->find(array('color' => $color), $order, $page); }
public function findByColorWithEyes
($color, $eyes, $order = array(), $page = false) {
return $this->find(array('color' => $color, 'eyes' => $eyes), $order, $page); }
Exacto, yo tengo ahora métodos genéricos del tipo, getById, etc, pero cuando se combinan varias condiciones, parece que la poo pierde un poco el sentido tras una base de datos.. se vuelve un poco "ortopedica".. y quería saber cual es la mejor manera para hacer esto ( evidentemente sin tener que tirar de una SQL ), también he pensado en crear por cada objeto, un objeto "superior" que sirva para obtener los objetos de su tipo, algo como:
$objeto
$objetoFind
Y pasarle al $objetoFind los parámetros que debe cumplir, por ejemplo:
$objetoFind->setOjos(3);
$objetoFind->setColor('rojo');
Y al hacer $objetoFind->getObjects();
Que me devuelva los de la condición...
La sql interna sería:
SELECT * FROM TABLA WHERE OJOS = 3 AND COLOR = 'rojo'
Muchas gracias y un saludo!