2016-04-03 95 views
1

我已经阅读了一堆关于这个错误的问题,但仍然无法获得它的rd。我有3个实体 - 网站,用户和标签。一个站点可以有一个唯一的用户,但不同的用户可能有相同的标签,反之亦然。其表格中的一个标签对用户和站点具有FK。我想,以显示相关的一个特定的站点用下面的代码的所有标签:学说ManyToMany StateFieldPathExpression错误

->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); 
} 

我也试过这样:

'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);} 

属性映射在标签实体如下:

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 

但是无论如何我在[asiteid = ta.id'附近得到[语义错误]第0行,第113列:Error:Invalid PathExpression。 StateFieldPathExpression或SingleValuedAssociationField预计。任何想法都会受到欢迎。

回答

0

该问题已由ManyToMany更改为ManyToOne解决。 I regenerated entities从现有的数据库和一切正常。