【发布时间】:2013-09-17 02:33:52
【问题描述】:
我有两个包
- 主要
- 登录
我正在一个包中创建会话,需要使用另一个包中的会话数据。
我们如何在创建的不同包中访问相同的会话数据 在一个单独的包中。
登录捆绑控制器 - 已创建会话:
$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' %}
主树枝 - layout.html.twig
{% set sessionName = session.name %}
{{ sessionName }}
用户实体
【问题讨论】:
-
会话是在登录包中创建的,并且 session.name 在其树枝模板中工作正常。但是在 Main Bundle 的模板中使用时,它现在显示任何内容。
-
@Pazi 问题中添加的代码
-
只创建一个 Session 对象,确实使它成为一个真正的 php 会话。
$user来自哪里? -
@Pazi Users 是创建的实体,这里 $user 正在从实体的数据库中获取用户详细信息。添加代码
-
@pazi 谢谢兄弟.. 帮了我.. 它工作得很好:)
标签: symfony symfony-2.1 symfony-forms