ฉันใช้ FOSuserbundle เพื่อเริ่มการลงทะเบียนผู้ใช้https://github.com/FriendsOfSymfony/FOSUserBundle
ฉันได้รับการลงทะเบียน / เข้าสู่ระบบและออก สิ่งที่ฉันต้องการทำตอนนี้คือดึงข้อมูลผู้ใช้ที่ล็อกอินและนำเสนอในทุกหน้าของไซต์ของฉัน เช่น "สวัสดีชื่อผู้ใช้" ในประเภทส่วนหัวของสิ่งต่างๆ
ดูเหมือนว่าการฝังตัวควบคุมในแอป / Resources / views / base.html.twig ของฉันเป็นวิธีที่ดีที่สุดในการดำเนินการhttp://symfony.com/doc/current/book/templating.html#embedding-controllers
ฉันจึงเขียนคอนโทรลเลอร์เพื่อเข้าถึงข้อมูลโปรไฟล์ผู้ใช้ สิ่งที่ฉันคิดไม่ออกคือวิธีเข้าถึงวิธีการ FOS ในคอนโทรลเลอร์แบบฝังตัวของฉัน ดังนั้นจากAcme / UserBundle / Controller / UserController.php ของฉันฉันต้องการทำสิ่งนี้:
public function showAction()
{
$user = $this->container->get('security.context')->getToken()->getUser();
if (!is_object($user) || !$user instanceof UserInterface) {
throw new AccessDeniedException(
'This user does not have access to this section.');
}
return $this->container->get('templating')
->renderResponse('FOSUserBundle:Profile:show.html.'.$this->container
->getParameter('fos_user.template.engine'), array('user' => $user));
}
ซึ่งฉันคว้ามาจาก: vendor / bundles / FOS / UserBundle / Controller / ProfileController.php