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

时间:2012-06-04 06:48:24

标签: 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 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标准。我必须忽略一些更优雅的东西。有什么见解吗?

1 个答案:

答案 0 :(得分:0)

是的,创建一个帮助方法是要走的路。您可以将其移动到基本控制器以保持干燥状态。我的abstract base controller提供了这样一种方法。

我知道没有“神奇”的做法。