Mysql
 sql >> Base de données >  >> RDS >> Mysql

Doctrine2 :Impossible de sélectionner une entité via des variables d'identification sans choisir au moins un alias d'entité racine

Votre problème est que vous essayez de sélectionner un champ de l'entité Catégorie tout en sélectionnant simultanément l'objet entier de l'entité Catégorie jointe. Contrairement au SQL ordinaire, avec le composant QueryBuilder, vous ne pouvez pas sélectionner une entité uniquement à partir de la table sur laquelle vous vous connectez.

Si vous cherchez à retourner votre objet Category principal avec les enfants joints, vous pouvez soit faire ->select(array('c', 'cc')) , ou simplement omettre le ->select() appeler tout à fait. Le premier sélectionnera automatiquement les enfants dont vous avez besoin en une seule requête. Ce dernier nécessitera une autre requête SQL si vous souhaitez accéder aux enfants sur l'entité principale Category.

S'il y a une raison pour laquelle vous voulez name pour sélectionner comme title dans votre objet, vous pouvez toujours ajouter une autre fonction à votre entité qui est un alias pour récupérer le nom au lieu de devoir l'écrire dans votre requête :

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