2017-01-27 15 views
-1

私のコードは、私は彼らの実体が関連することなく、唯一のバーエンティティを取得したいエンティティを関連付けずにエンティティを取得するにはどうすればよいですか?

$bars = $em->getRepository('AppBundle:Bar')->findAll(); 

あるとエンティティ

/** 
* @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; 

(ウェイター、Table_、Stock_drink、Stock_food)。

レスポンスはすべてのデータですが、名前、位置、郵便番号、ディスクリプタのみが必要です。

ありがとうございます!!!

+0

最も単純な解決策は、リポジトリにカスタムメソッドを追加し、findOneBy、findAllなどのようなORMショートカットを使用せずにクエリを書き込むことです。 –

+0

DQLのクエリではなくオブジェクトで作業する必要があるため、 – DBCooper

+0

あなたは完全なオブジェクトを手に入れたことは確かですか? IMOプロキシクラスのみが作成されます(作成されます)。 http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/extra-lazy-associations.html EXTRA_LAZY JOINSを作成しないでください。そのような場所からプロパティを取得しようとするとオブジェクトDoctrineは追加のSQLクエリを作成します – barat

答えて

0

helloo

私は解決策を見つけました!私は生のSQLクエリDBALを使用しています

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

ありがとう!!

関連する問題