【问题标题】:How can I take variables from @Route? Symfony2如何从@Route 获取变量? Symfony2
【发布时间】:2016-04-06 09:50:43
【问题描述】:

我的问题是:

我想像这样从@route 中获取两个变量:

class MultimediaController extends Controller
{
    /**
     * @return \Symfony\Component\HttpFoundation\Response
     * @Route("/{sku}/{dimension}")
     * @Method({"GET"})
     */
    public function indexAction($sku, $dimension)
    {
        $sku = {sku};

        return $this->render('ExampleFrontMultimediaBundle:Default:index.html.twig');
    }

}

我该怎么办?

【问题讨论】:

  • 请在此处询问之前阅读文档。
  • $sku 已在您的控制器中可用,但参数名称应与路由器令牌相同,$dimension 的 indexAction 参数中缺少 s。
  • @Mattia Lol 抱歉,我是 symfony 的新手,我不知道如何在他们的文档中搜索。

标签: php symfony


【解决方案1】:

只需使用$sku。

如果参数在路由声明中定义并作为参数传递给函数,则参数(即$sku)将采用路由参数的值。

所以如果你浏览/test/123,$sku 将等于"test",$dimension 将等于123。

这是Routing documentation的第一段。

【讨论】:

  • 也可以使用public function indexAction(Request $request) 注入请求对象,然后使用$sku = $request->get('sku'); 获取参数。
  • @qooplmao 如果参数未作为参数传递,或者参数未在路由定义中明确定义,则这是强制性的,但在这种情况下,我认为注入整个 Request 对象而不是参数有点矫枉过正。
  • 哦,是的,可能。只是说这是一种可能性,这就是为什么我只是作为评论而不是尝试回答的原因。
猜你喜欢
  • 2018-01-06
  • 1970-01-01
  • 2016-11-25
  • 2013-03-02
  • 2014-01-19
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
相关资源
最近更新 更多