我的security.yml
firewalls:
user_area:
pattern: ^/
anonymous: ~
provider: chain_provider
form_login:
login_path: login_action
check_path: login_check
csrf_provider: form.csrf_provider
default_target_path: user_show_redirect
logout:
path: logout_action
target: /login
我在登录后将用户重定向到他的个人资料,但我不知道如何创建控制器。现在,我的控制器看起来像
/**
* @Route("/user/show", name="user_show_redirect")
* @return array
*/
public function redirectAction($id)
{
return array('user' => $this->getUser());
}
我无法弄清楚如何做正确的事情并且容易。请回复
答案 0 :(得分:1)
您的函数中未使用$id
参数,您可以将其删除:
/**
* @Route("/user/show", name="user_show_redirect")
* @return array
*/
public function redirectAction()
{
return array('user' => $this->getUser());
}
控制器需要返回一个Response,渲染一个Twig模板或使用@Template
annotation:
render()
ing of a Twig template示例:
/**
* @Route("/user/show", name="user_show_redirect")
* @return array
*/
public function redirectAction()
{
return $this->render(
'AcmeWebsiteBundle:Default:profile.html.twig',
array('user' => $this->getUser())
);
}
您必须在 src / Acme / WebsiteBundle / Resources / views / Default / profile.html.twig 中创建一个文件,其中包含以下内容:
{{ user.firstName }}
这意味着您的User
实体有一个getFirstName()
方法,它会显示该用户的名字。
请参阅Symfony2 official documentation了解模板继承等内容。