【问题标题】:How to contextualize Symfony 2 routes without request parameters如何在没有请求参数的情况下对 Symfony 2 路由进行上下文化
【发布时间】:2012-06-04 06:48:24
【问题描述】:

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

对于我的应用程序的管理后端,我目前为这样的控制器获取用户:

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

【问题讨论】:

    标签: symfony routing doctrine-orm


    【解决方案1】:

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

    据我所知,没有“神奇”的方法可以做到这一点。

    【讨论】:

      猜你喜欢
      • 2013-01-02
      • 2013-03-08
      • 2011-05-15
      • 2018-03-17
      • 2022-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多