public function agencyHome(EntityManagerInterface $em)
{
$repository = $em->getRepository(Ships::class);
// $ships = $repository->findByOwner($own);
$ships = $repository->findAll();
return $this->render('agency/index.html.twig', [
'ships' => $ships,
]);
}
在上面的代码中,我需要将当前登录的用户传递到存储库,以便我可以找到所有相关的“船” 我尝试用$ u = $ this-> getUser()-> getId();没有成功:(
预先感谢您:)
答案 0 :(得分:3)
在Symfony 4控制器中,您应该能够在控制器中使用$this->getUser()
来访问用户,前提是该用户已获得授权。如果没有登录用户,则应返回null
。
public function agencyHome(EntityManagerInterface $em)
{
$this->denyAccessUnlessGranted('ROLE_USER');
$user = $this->getUser();
}
或者,您还应该能够将UserInterface
类注入到方法参数中,从而可以获取有关当前登录用户的信息。
public function agencyHome(EntityManagerInterface $em, UserInterface $user)
{
...
}
我已经在Symfony 4应用程序上对它们进行了测试,尽管我不记得是否必须在配置中执行其他任何操作,所以请告诉我它们是否有任何问题。