代码如下。我有一个loginAction方法,我想通过我的twig文件中的会话访问用户名。
public function loginAction(Request $request)
{
$session= $this->getRequest()->getSession();
if($request->getMethod()=='POST')
{
$username=$request->get('username');
$password=$request->get('password');
$em= $this->getDoctrine()->getEntityManager();
$repository = $em->getRepository('MWANRegisterBundle:User');
$user= $repository->findOneBy(array('userName'=>$username, 'userPassword'=> $password ));
if($user)
{
$login= new Session();
// Session is in the same class as getter setter functions
// for username and password
$login->setUsername($username);
$session->set('login', $login);
if($session->has('login'))
{
$login = $session->get('login');
$username = $login->getUsername();
// var_dump($username); exit();
// in show_home I redirect to twig file list.html.twig
return $this->redirect($this->generateUrl('show_home'));
}
}
else
{
echo("wrong username OR password");
exit();
}
}
return $this->render('MWANRegisterBundle:Default:login.html.twig');
}
---------------------这是注销方法--------------------- -----
public function logoutAction(Request $request)
{
$session= $this->getRequest()->getSession();
$session->clear();
return $this->render('MWANRegisterBundle:Default:login.html.twig');
}
// listAction is action to render list.html.twig i want username of session here
public function listAction (Request $request)
{
$session= $this->getRequest()->getSession();
return $this->render('MWANRegisterBundle:Default:list.html.twig' );
}
请一步一步指导我......
答案 0 :(得分:0)
即使在树枝中也不需要这个“hack”来检索已记录的用户名。
只需使用此代码段
即可{{ app.user.username }}
如果您想确定该用户当前已登录,您可以添加一些显式控件
{% if app.user %}
{{ app.user.username }}
{% endif %}
要获得完整的答案,我还要添加来自twig的会话检索
{{ app.session.get('parameterName') }}
答案 1 :(得分:0)
您可以使用{{app.session.get("nameOfSession")}}
并设置会话{{app.session.set("name","value")}}
对于您的用户管理我建议您使用FOSUserBundle来获得最佳和安全的应用程序