我有两个捆绑
我在一个包中创建会话,需要在另一个包中使用会话数据。
我们如何在创建的不同包中访问相同的会话数据 在一个单一的包中。
登录捆绑控制器 - 创建会话:
$session = new Session();
$session->set('name', $user->getFname()." ".$user->getLname());
$session->set('uname', $user->getUsername());
$session->set('pwd', $user->getPassword());
登录 - 用户名和密码检查
if ($request->getMethod() == 'POST') {
$uname = $request->request->get('uname');
$pwd = $request->request->get('pwd');
$em = $this->getDoctrine()->getEntityManager();
$repository = $em->getRepository('SimranMainBundle:Users');
$user = $repository->findOneBy(array('username'=>$uname, 'password'=>$pwd));
if($user){
$session = new Session();
$session->set('name', $user->getFname()." ".$user->getLname());
$session->set('uname', $user->getUsername());
$session->set('pwd', $user->getPassword());
return $this->render('SimranLoginBundle:Default:index.html.twig', array('name' => $user->getFname()." ".$user->getLname(),'uname'=>$uname, 'pwd'=>$pwd));
}
else{
return $this->render('SimranLoginBundle:Default:index.html.twig', array('name' => "LOGIN"));
}
}
登录Twig - index.html.twig
{% extends 'SimranMainBundle::layout.html.twig' %}
Main Twig - layout.html.twig
{% set sessionName = session.name %}
{{ sessionName }}
用户实体
答案 0 :(得分:3)
首先你要注意,创建Session
实例意味着不创建真正的php会话。在获取请求期间已经创建了php会话,您必须使用此对象。
所以在你的控制器中:
$session = $request->getSession();
$session->set('name', $user->getFname()." ".$user->getLname());
$session->set('uname', $user->getUsername());
$session->set('pwd', $user->getPassword());
在小枝中,会话可通过app.session
访问。
{% set sessionName = app.session.get('name') %}