在最新的Symfony 2版本(使用FOSUserBundle和SonataUserBundle)上,我试图让当前用户在我的新实体控制器中预先填写表单。
在 mycontroller.yml :
上my_controller_new:
pattern: /new
defaults: { _controller: "MySiteBundle:MyController:new" }
在 MyController.php :
上public function newAction()
{
$user = $this->getUser();
// ...
}
但是当我致电$this->getUser()
时,该方法会返回null
。即使我已登录(我可以访问/profile
并更新我的用户信息而没有任何问题)
然后我尝试检查会话是否已启动:
public function newAction()
{
var_dump($this->get('session')->isStarted());
// ...
}
返回false。这有什么不对?
答案 0 :(得分:0)
public function newAction() {
$session = $this->getRequest()->getSession(); // Get started session
if(!$session instanceof Session)
$session = new Session(); // if there is no session, start it
$value = $session->getId(); // get session id
}