/ / Yii utilizando CActiveRecord -> con el método () con nombres de columna compartidos - yii

Yii utilizando el método CActiveRecord -> with () con nombres de columna compartidos - yii

Estoy usando Yii CActiveRecord A -> with ("B") -> findAll () método donde una de sus columnas es común con A y B y esta columna también es parte de la condición.

Ahora el problema es que al ejecutarlo obtengoel error de SQL porque mySQL no sabe si quiero referirme a A.column o B.column. Vi la consulta ejecutada y parece que la tabla de nombres de yii es "t" mientras se ejecuta la consulta, así que agregué la "t" .columnname en la condición y todo funcionó bien.

Mi pregunta es si este tipo de código es apropiado cuando estoy usando la condición como

"CURDAR () <= date Y t.removed =: eliminado Y ispublic = 1 Y isopen = 1 "

Si bien no me refiero a qué "t" se encuentra en la consulta. Yii cambia el nombre de la tabla por su cuenta. Por favor, avíseme si esto parece ser una buena práctica de codificación o si hay una mejor manera de hacerlo.

Gracias.

Respuestas

1 para la respuesta № 1

Cuando no está utilizando "con ()", puede escribirsu condición sin agregar el alias "t" con el nombre de la columna, pero cuando usa "con ()" para encontrar datos de relaciones, necesita agregar el alias "t" con la condición del modelo base. Si no es una columna común con relaciones, puede evitar el alias al modelo base.

Los valores predeterminados de Yii agregan un alias al modelo base "t", por lo que debe usar "t" con los nombres de columna del modelo base.