2016-04-03 23 views
1

Bu hata hakkında SO hakkında burada bir sürü soru okudum ama yine de rd'yi alamıyorum. Sitem, Kullanıcı ve Etiketler - 3 var. Bir sitenin tek bir benzersiz kullanıcısı olabilir, ancak farklı kullanıcılar aynı etikete sahip olabilir veya tam tersi de olabilir. Masasında bir etiket bir kullanıcıya ve bir siteye bir FK vardır.Doctrine ManyToMany StateFieldPathExpression error

aşağıdaki
'query_builder' => function(EntityRepository $er) use ($siteid) {return $er->createQueryBuilder('t') 
      ->join('\MyBundle\Entity\Mysites','ta', \Doctrine\ORM\Query\Expr\Join::WITH,'t.asiteid=ta.id') 
      ->where('t.asiteid = :asiteid') 
      ->setParameter('asiteid', $siteid);} 

Etiketler varlık içinde Mülkiyet haritalama gibi: Ayrıca bunu denedim

->add('tags','entity', array(
'class'=> 'MyBundle:Tags', 
'query_builder' => function(EntityRepository $er) use ($siteid) 
{ 
    return $er->createQueryBuilder('s')->where('s.asiteid = :siteid') 
    ->setParameter('siteid', $siteid); 
} 

: Ben şu kodla belirli bir siteyle ilgili tüm etiketleri görüntülemek için çalışıyorum

manyToMany: 
    userid: 
     targetEntity: MyBundle\Entity\User 
     cascade: { } 
     mappedBy: null 
     inversedBy: null 
     joinColumns: 
      userid: 
       referencedColumnName: id 
     orphanRemoval: false 
    asiteid: 
     targetEntity: \MyBundle\Entity\Mysites 
     cascade: { } 
     mappedBy: asiteid 
     inversedBy: id 
     joinColumns: 
      siteid: 
       referencedColumnName: id 
     orphanRemoval: false 

Ancak her durumda [Semantical Error] satırı 0, col 113 'asiteid = ta.id' konumuna ulaşıyorum: Hata: Geçersiz PathExpression. StateFieldPathExpression veya SingleValuedAssociationField bekleniyor. Herhangi bir fikir memnuniyetle karşılanacaktır.

cevap

0

Sorun, ManyToMany'den ManyToOne olarak değiştirilerek çözüldü. Mevcut DB'den regenerated entities ve her şey iyi çalıştı.