Mysql
 sql >> Database >  >> RDS >> Mysql

Dottrina2:Impossibile selezionare l'entità tramite variabili di identificazione senza scegliere almeno un alias di entità radice

Il tuo problema è che stai cercando di selezionare un campo dall'entità Categoria mentre selezioni contemporaneamente l'intero oggetto dell'entità Categoria unita. A differenza del semplice SQL, con il componente QueryBuilder non puoi selezionare un'entità solo dalla tabella a cui ti stai unendo.

Se stai cercando di restituire il tuo oggetto Categoria principale con i figli uniti, puoi eseguire ->select(array('c', 'cc')) o semplicemente ometti ->select() chiamare del tutto. Il primo selezionerà automaticamente i bambini di cui hai bisogno in un'unica query. Quest'ultimo richiederà un'altra query SQL se desideri accedere ai bambini sull'entità Categoria principale.

Se c'è un motivo per cui vuoi name per selezionare come title nel tuo oggetto, puoi sempre aggiungere un'altra funzione alla tua entità che è un alias per recuperare il nome invece di doverlo scrivere nella tua query:

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