Ale*_*Br. 2 php doctrine symfony
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,
]);
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我需要将当前登录的用户传递到存储库,以便我可以找到所有我尝试过的与$ u = $ this-> getUser()-> getId()相关的“船”;没有成功:(
先感谢您 :)
在Symfony 4控制器中,您应该能够$this->getUser()在控制器中使用该用户,但前提是该用户已获得授权。如果没有登录用户,则应返回null。
public function agencyHome(EntityManagerInterface $em)
{
$this->denyAccessUnlessGranted('ROLE_USER');
$user = $this->getUser();
}
Run Code Online (Sandbox Code Playgroud)
另外,您还应该能够将UserInterface类注入方法参数中,从而可以获取有关当前登录用户的信息。
public function agencyHome(EntityManagerInterface $em, UserInterface $user)
{
...
}
Run Code Online (Sandbox Code Playgroud)
我已经在Symfony 4应用程序上对它们进行了测试,尽管我不记得是否需要在配置中执行其他任何操作,所以如果它们有任何问题,请告诉我。
引用自https://symfony.com/doc/current/security.html