sql >> Database >  >> RDS >> Mysql

Doctrine2:Kan entiteit niet selecteren via identificatievariabelen zonder ten minste één rootentiteitsalias te kiezen

Uw probleem is dat u één veld uit de categorie-entiteit probeert te selecteren terwijl u tegelijkertijd het volledige object van de samengevoegde categorie-entiteit selecteert. In tegenstelling tot gewone SQL, kunt u met de QueryBuilder-component niet alleen een entiteit selecteren uit de tabel waaraan u deelneemt.

Als u uw hoofdcategorieobject wilt retourneren met de samengevoegde onderliggende items, kunt u ofwel ->select(array('c', 'cc')) doen , of laat gewoon de ->select() . weg helemaal bellen. De eerste selecteert automatisch de kinderen die u nodig hebt in een enkele zoekopdracht. De laatste vereist een andere SQL-query als u toegang wilt tot kinderen op de hoofdcategorie-entiteit.

Als er een reden is waarom je name . wilt om te selecteren als title in uw object kunt u altijd een andere functie aan uw entiteit toevoegen die een alias is om de naam op te halen in plaats van deze in uw query te moeten schrijven:

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


  1. Kolom in database bijwerken waar max. waarde php mysql

  2. Som tot een bepaald punt - MySql

  3. SQLite GEVAL

  4. SQLite UNION-operator