getUser () возвращает ноль, сессия не запускается в моем контроллере Symfony

5

В последней версии Symfony 2 (с использованием FOSUserBundle и SonataUserBundle) я пытаюсь получить текущего пользователя, чтобы предварительно заполнить форму в моем новом контроллере Entity.

В 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
    $ this-> get ('session') -> isStarted () return false означает, что ваша сессия не началась.
  • 1
    Да, я упоминаю это в названии, но мне интересно, почему.
Показать ещё 3 комментария
Теги:
session

1 ответ

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
    }
  • 0
    Нет ошибок с этим кодом, но getId () возвращает пустую строку.
  • 0
    @BraveKenny BraveKenny, где вы сохраняете сеанс пользователя? Я думаю, что это не может быть сохранение пользовательских данных в сеанс, поэтому вы не получаете данные сеанса пользователя.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню