2017-01-27 3 views
-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 !!!

+0

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. –

+0

Ich möchte das ORM verwenden, weil ich mit Objekten arbeiten muss nicht mit Abfragen in DQL – DBCooper

+0

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

Antwort

0

Helloo

fand ich die Lösung !! Ich verwende rohe SQL-Abfragen, DBAL

$conn = $em->getConnection(); 
    $sql = 'SELECT * FROM Bar'; 
    $stmt = $conn->prepare($sql); 
    $stmt->execute(); 
    $bars = $stmt->fetchAll(); 

Danke!

Verwandte Themen