sql >> Databasteknik >  >> RDS >> Mysql

Lära 2:Kan inte välja entitet genom identifieringsvariabler utan att välja minst ett rotentitetsalias

Ditt problem är att du försöker välja ett fält från Kategori-entiteten samtidigt som du väljer hela objektet för den sammanfogade Kategori-entiteten. Till skillnad från vanlig SQL kan du med QueryBuilder-komponenten inte bara välja en enhet från tabellen du går med i.

Om du vill returnera ditt huvudkategoriobjekt med de sammanfogade barnen kan du antingen göra ->select(array('c', 'cc')) , eller helt enkelt utelämna ->select() ring helt och hållet. Den förra väljer automatiskt de barn du behöver i en enda fråga. Den senare kommer att kräva ytterligare en SQL-fråga om du vill få åtkomst till underordnade enheter i huvudkategorientiteten.

Om det finns en anledning till att du vill ha name för att välja som title i ditt objekt kan du alltid lägga till en annan funktion till din enhet som är ett alias för att hämta namnet istället för att behöva skriva det i din fråga:

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


  1. Vad är skillnaden mellan MySQL Server och MySQL Client

  2. Ställ in värdet på NULL i MySQL

  3. Byt ut en partition i SQL Server (T-SQL)

  4. Flera främmande nycklar i samma tabell