2016-04-30 8 views
0

私はSymfony 2.8を使用しています。エンティティ「Offerte」の機能editAction()で、私はこのコードを持っている:Doctrineクエリービルダーは「from」なしで「from」を削除しますか?

foreach($offerte->getGallery() as $gallery) { 
      dump($gallery); 
      if ($gallery->getImageName() == '') { 
       dump("io sono dentro if"); 
       dump($gallery->getId()); 
       $qb = $em->createQueryBuilder(); 
       $qb->delete('ImageOfferte', 'io'); 
       $qb->from('image_offerte','io'); 
       $qb->where('io.id = :id'); 
       $qb->setParameter(':id', $gallery->getId()); 
       $qb->getQuery()->execute(); 
       dump($qb->getDQL()); 
       exit(); 
      } 
} 

ImageOfferteは($ギャラリーフィールド経由)OneToManyの関係を介して連結された別のエンティティであるが

このコードは私にこのエラーを返す:

[Semantical Error] line 0, col 7 near 'ImageOfferte': Error: Class 'ImageOfferte' is not defined.

ここで私のエラー私は別の「質問」here on stackoverflowを見つけました。「削除ステートメントは選択とは異なりますが、その答えで私の「ImageOfferte」を使用する方法はわかりません。

私はこのコードを使用する場合は、すべてがokです:

$query = $em->createQuery('delete FROM AppBundle:ImageOfferte io where io.id = '.$gallery->getId()); 
$result = $query->execute(); 
+0

最初の例では、エンティティクラス名を引数として渡すだけですが、2番目の例では短い構文「BundleName:EntityName」を使用しています。あなたのコードでそれを修正し、あなたは良いことをする必要があります。 – Artamiel

答えて

1

私は削除すべきだと思う - >()からを。

$qb = $em->createQueryBuilder(); 
$qb->delete('ImageOfferte', 'io'); 
$qb->where('io.id = :id'); 
$qb->setParameter(':id', $gallery->getId()); 
$qb->getQuery()->execute(); 
関連する問題