私はここでこのエラーについての質問をたくさん読んでいますが、まだそれを得ることはできません。私は、サイト、ユーザー、タグの3つのエンティティを持っています。 1つのサイトには一意のユーザーが1人いることができますが、異なるユーザーには同じタグが付いている場合があります。そのテーブルの1つのタグは、ユーザとサイトに対してFKを持っています。私は、次のコードである特定のサイトに関連するすべてのタグを表示しようとしています:Doctrine 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
しかし、いずれの場合でも、[意味的なエラー]行0、col 113は 'asiteid = ta.id'の近くにあります。エラー:無効なPathExpression。 StateFieldPathExpressionまたはSingleValuedAssociationFieldが必要です。どんなアイディアも大歓迎です。