sql >> Base de Datos >  >> RDS >> Mysql

Doctrine2:no se puede seleccionar la entidad a través de variables de identificación sin elegir al menos un alias de entidad raíz

Su problema es que está tratando de seleccionar un campo de la entidad Categoría mientras selecciona simultáneamente todo el objeto de la entidad Categoría unida. A diferencia del SQL simple, con el componente QueryBuilder no puede seleccionar una entidad solo de la tabla a la que se está uniendo.

Si está buscando devolver su objeto Categoría principal con los elementos secundarios unidos, puede hacer ->select(array('c', 'cc')) , o simplemente omita ->select() llama por completo. El primero seleccionará automáticamente los niños que necesita en una sola consulta. Este último requerirá otra consulta SQL si desea acceder a los niños en la entidad Categoría principal.

Si hay una razón por la que desea name para seleccionar como title en su objeto, siempre puede agregar otra función a su entidad que sea un alias para recuperar el nombre en lugar de tener que escribirlo en su consulta:

function getTitle()
{
    return $this->getName();
}