如何在没有请求参数的情况下上下文化Symfony 2路由

如何在没有请求参数的情况下上下文化Symfony 2路由,symfony,routing,doctrine-orm,Symfony,Routing,Doctrine Orm,我一直在到处寻找解决方案,但我并没有真正找到我需要的。可能只是我没有在寻找正确的东西 对于我的应用程序的管理后端,我当前为控制器抓取一个用户,如下所示: //routing.yml view_user: pattern: /user/{id}/ defaults: { _controller: AppBundle:User:view } //UserController.php use Sauce\AppBundle\Entity\User; public function

我一直在到处寻找解决方案,但我并没有真正找到我需要的。可能只是我没有在寻找正确的东西

对于我的应用程序的管理后端,我当前为控制器抓取一个用户,如下所示:

//routing.yml
view_user:
    pattern: /user/{id}/
    defaults: { _controller: AppBundle:User:view }

//UserController.php
use Sauce\AppBundle\Entity\User;

public function viewAction(User $user)
{
    $user->getSauce();
}
对于前端,用户不使用id在每个URL获取自己,这是不起作用的。是否可以在URL中没有id的情况下执行此操作?我的第一个想法是如何让用户轻松访问:

/**
 * A fast way to grab the user throughout this class.
 */
public function getUser() {
    return $this->get('security.context')->getToken()->getUser();
}

public function viewAction()
{
    $user = $this->getUser();

    ...
}

但在我看来,这似乎远远低于Symfony 2的标准。我一定忽略了更优雅的东西。有什么见解吗?

是的,创建一个助手方法是一条路要走。您可以将其移动到基础控制器以保持干燥。我的系统提供了这样一种方法

我知道没有“神奇”的方法可以做到这一点