Manejo De Criteria

alguien me indica por favor un tutorial para entender criteria? necesito poner una condiciones pero no entiendo para que sirve compare, addcondition, addincondition, with, es decir, qué equivale a un join o a un where de mysql.

necesito hacer una condición a una consulta multitabla pero no sé que resultados me está arrojando porque no entiendo la consulta que está generando

[color="#006400"]/* Moved from "General Discussion for Yii 1.1.x" to "Spanish" */[/color]

hola, primero te sugiero que leas esta información (no es sobre CDbCriteria pero te dara base):

Query Builder

Luego, documentate sobre el uso de CDbCriteria, la cual tiene un uso sencillo,


$criteria->compare ( 'columna1_db', $this->columna1, true,"AND");

crea algo como …WHERE … AND columna1_db LIKE ‘%columna1%’


$criteria->compare ( 'columna1_db', $this->columna1, false,"OR");

crea algo como …WHERE … OR columna1_db = ‘columna1’


$criteria->addCondition("columna1_db='$this->columna1'","AND");

crea algo como …WHERE … AND columna1_db = ‘columna1’

No se puede usar compare junto con el addCondition


$criteria->with=array('relacion1','relacion2','relacion3');

crea algo como … FROM tabla t LEFT OUTER JOIN tabla_r1 relacion1 ON(t.columna_db_r1=relacion1.id) LEFT OUTER JOIN tabla_r2 relacion2 ON(t.columna_db_r2=relacion2.id) LEFT OUTER JOIN tabla_r3 relacion3 ON(t.columna_db_r3=relacion3.id)

Para poder utilizar el with debes tener especificado correctamente las relaciones en la función relations del modelo.


$criteria->join="LEFT OUTER JOIN tabla_r2 relacion1 ON(t.columna_db_r1=relacion1.id) LEFT OUTER JOIN tabla_r2 relacion2 ON(t.columna_db_r2=relacion2.id) LEFT OUTER JOIN tabla_r3 relacion3 ON(t.columna_db_r3=relacion3.id)";



Crea algo semejante al anterior

Gracias, ya me queda un poco más claro, voy a seguir revisando, pero con esto ya tengo unas bases.