我有一条通过 id 查找用户的路线。我想根据用户是访问自己的个人资料还是其他用户的个人资料,在个人资料上显示不同的内容。
控制器中的方法:
/**
* @Route("/u/{id}", name="profile_show")
* @ParamConverter("user", class="UserBundle:User")
* @Template()
*/
public function showAction(User $user)
{
$auth = $this->getUser();
if ($user->getId() == $auth->getId()) {
$auth->addRole('ROLE_PROFILE_OWNER');
}
return array(
'user' => $user
);
}
Twig 中的输出:
{% if is_granted('ROLE_PROFILE_OWNER') %}
<p>This is my profile</p>
{% else %}
<p>This is not my profile</p>
{% endif %}
如果我执行 {{ dump(app.user) }},该角色会显示在用户身上,但它会输出不是我的个人资料的文本。任何人都知道为什么这不起作用?
我也不知道这是否真的是做这样的事情的正确方法。我想遵循最佳实践,所以如果这完全错误,请赐教。
谢谢你的帮助。