-1
Mein Code istWie können Entitäten ohne ihre Entitäten abgerufen werden?
$bars = $em->getRepository('AppBundle:Bar')->findAll();
und das Unternehmen
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=45, nullable=true)
*/
private $name;
/**
* @var string
*
* @ORM\Column(name="location", type="string", length=45, nullable=true)
*/
private $location;
/**
* @var string
*
* @ORM\Column(name="zipcode", type="string", length=45, nullable=true)
*/
private $zipcode;
/**
* @var string
*
* @ORM\Column(name="description", type="string", length=45, nullable=true)
*/
private $description;
/**
* @ORM\OneToMany(targetEntity="Waiter", mappedBy="bar", fetch="EXTRA_LAZY")
*/
protected $waiters;
/**
* @ORM\OneToMany(targetEntity="Table_", mappedBy="bar", fetch="EXTRA_LAZY")
*/
protected $tables;
/** @ORM\OneToMany(targetEntity="Stock_food", mappedBy="bar", fetch="EXTRA_LAZY") */
private $stockfoods;
/** @ORM\OneToMany(targetEntity="Stock_drink", mappedBy="bar", fetch="EXTRA_LAZY") */
private $stockdrinks;
ich nur die Bars Entität abrufen wollen, ohne ihre Organisationen, die (Kellner, Table_, Stock_drink, Stock_food).
Die Antwort ist alle Daten, aber ich brauche nur Name, Standort, Postleitzahl und Beschreibung.
Vielen Dank im Voraus !!!
Die einfachste Lösung ist eine benutzerdefinierte Methode in Ihrem Repository hinzufügen und schreiben Sie die Abfrage ohne Verwendung der ORM-Verknüpfung wie findOneBy, findAll, etc. –
Ich möchte das ORM verwenden, weil ich mit Objekten arbeiten muss nicht mit Abfragen in DQL – DBCooper
Sind Sie sicher, dass Sie vollständige Objekte erhalten? IMO Sie erhalten nur Proxy-Klassen (die erstellt werden). http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/extra-lazy-associations.html EXTRA_LAZY nicht JOINS - stattdessen, wenn Sie versuchen, eine Eigenschaft von solchen zu bekommen Objekt Doctrine wird zusätzliche SQL-Abfrage – barat