sql >> Databáze >  >> RDS >> Mysql

Doctrine2:Nelze vybrat entitu prostřednictvím identifikačních proměnných bez výběru alespoň jednoho aliasu kořenové entity

Váš problém spočívá v tom, že se pokoušíte vybrat jedno pole z entity Kategorie a současně vybíráte celý objekt spojené entity Kategorie. Na rozdíl od prostého SQL s komponentou QueryBuilder nemůžete vybrat entitu pouze z tabulky, ke které se připojujete.

Pokud chcete vrátit svůj hlavní objekt Category se spojenými potomky, můžete buď udělat ->select(array('c', 'cc')) , nebo jednoduše vynechat ->select() zavolat úplně. První automaticky vybere děti, které potřebujete, v jediném dotazu. Ten bude vyžadovat další SQL dotaz, pokud chcete přistupovat k potomkům v hlavní entitě Category.

Pokud existuje důvod, proč chcete name vyberte jako title ve svém objektu můžete do své entity vždy přidat další funkci, která je aliasem pro načtení názvu, místo abyste jej museli psát do dotazu:

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


  1. MySQL získá všechny ovlivněné řádky pro více příkazů v jednom dotazu

  2. Jak vytvořit formulář z tabulky v Accessu 2016

  3. Oracle to Excel - postup exportu PL/SQL

  4. Získejte nadřazenou MySQL nejvyšší úrovně