我在 symfony2 中创建了一个应用程序。到目前为止,我有一个对用户进行身份验证的实体用户、一个实体来宾和一个类别。
用户与来宾具有 OneToMany 关系,保持来宾(对于事件),将 users.id 映射到 guest.user_id 变量。
出于同样的原因,用户也与类别具有 OneToMany 关系。
客人与类别具有多对多关系,因为许多类别中有许多客人,许多客人有许多类别。
我已经创建了所有内容,并且 CRUD 操作成功地向我显示了用户添加的所有客人。我想添加每个客人属于查看操作的类别。
我很困惑。我做了一个自定义查询来检索登录用户的所有客人:
public function indexAction()
{
$user = $this->get('security.context')->getToken()->getUser();
$userId = $user->getId();
$em = $this->getDoctrine()->getEntityManager();
$query = $em->createQuery("SELECT g
FROM Acme\SomethingBundle\Entity\Guest g
INNER JOIN g.user u
WHERE u.id = :userId
ORDER BY g.surname ASC");
$query->setParameter('userId', $userId);
$entities = $query->getResult();
return $this->render('AcmeSomethingBundle:Guest:index.html.twig', array(
'entities' => $entities
));
}
如果我尝试将类别实体添加到查询中,则会出现异常:
public function indexAction()
{
$user = $this->get('security.context')->getToken()->getUser();
$userId = $user->getId();
$em = $this->getDoctrine()->getEntityManager();
$query = $em->createQuery("SELECT g , c
FROM Acme\SomethingBundle\Entity\Guest g,
Acme\SomethingBundle\Entity\Category c
INNER JOIN g.user u
WHERE u.id = :userId
ORDER BY g.surname ASC");
$query->setParameter('userId', $userId);
$entities = $query->getResult();
return $this->render('AcmeSomethingBundle:Guest:index.html.twig', array(
'entities' => $entities
));
}
请帮忙。我一直在努力让它工作 6 个小时(在一个系列中:))。