Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Doutrina2:Não é possível selecionar entidade por meio de variáveis ​​de identificação sem escolher pelo menos um alias de entidade raiz


Seu problema é que você está tentando selecionar um campo da entidade Category enquanto seleciona simultaneamente todo o objeto da entidade Category associada. Ao contrário do SQL simples, com o componente QueryBuilder você não pode selecionar uma entidade apenas da tabela na qual está unindo.

Se você deseja retornar seu objeto Category principal com os filhos unidos, você pode fazer ->select(array('c', 'cc')) , ou simplesmente omita o ->select() ligue completamente. O primeiro selecionará automaticamente os filhos que você precisa em uma única consulta. O último exigirá outra consulta SQL se você quiser acessar os filhos na entidade Category principal.

Se houver um motivo para você querer name para selecionar como title em seu objeto, você sempre pode adicionar outra função à sua entidade que seja um alias para recuperar o nome em vez de ter que escrevê-lo em sua consulta:
function getTitle()
{
    return $this->getName();
}