[SOLUCIONADO]ILIKE en condición de get_filas

Buen día, como puedo aplicar la condición a una carga de persistencia ?

necesito aplicar operador ILIKE sobre una condición de la carga, ya que es para buscar una coincidencia de la cadena

encuentro en la ayuda aplique set_condicion(‘campo’, operador…);

$this->get_relacion()->tabla(‘deportes’)->get_filas($condicion); //coincidencia exactas

como puedo integrar estos dos llamados ?

Gracias

John,

ILIKE es un operador del motor de base de datos, mientras que la API de los objetos de persistencia trabaja en PHP donde no existe un operador similar.
Lo que estoy agregando para la version 1.5 de Toba es la posibilidad de usar expresiones regulares para estos casos.

Por otro lado, creo que estas confundiendo un poco dos componentes:

El metodo set_condicion(‘campo’, operador…) es parte del componente toba_datos_busqueda que es el que usamos normalmente para recuperar datos que tienen que ser filtrados por una cantidad de condiciones X, inclusive se pueden plantear ordenamientos etc.

Por otro lado el metodo get_filas() del componente toba_datos_tabla acepta condiciones simples (generalmente chequea por igualdad) y estamos intentando realizar una transcicion hacia el componente de busqueda ya que nos permite realizar tareas mas complejas.

En tu caso creo que esto seria:


$buscador = $this->get_relacion()->tabla('deportes')->nueva_busqueda();
$buscador->set_condicion('deporte', '==', 'futbol');
$filas_deporte = $buscador->buscar_filas();

Richard, gracias por la respuesta

Pero entonces en conclusión sobre la carga NO se puede restringir para buscar parte de un valor como por ejemplo que no se ‘futbol’ sino todos los que tengan por ejemplo %tbol%, que es lo que hace el ILIKE en el motor.

Gracias

Hasta que salga la version 1.5 no se puede y en dicha version se realizara por medio de expresiones regulares que es la manera en que PHP realiza el pattern matching, en definitiva tendrias que armar una expresion regular que sea equivalente al ‘%tbol%’ y en medio de dicha expresion colocar el ‘tbol’ para que lo reconozca.

Saludos

Ok Ingeniero,

Muchas Gracias