7

此代码转储$id类型的正确变量null

/**
 * Show user
 *
 * @Route("/show/{id}", name="acme_user_show", defaults={"id"=null}, requirements={"id"="\d+"})
 */
public function showUserAction($id = null)
{
    var_dump($id);
}

下面的代码给出了一个$id类型的变量stringstring(4) "null"

/**
 * Show user
 *
 */
public function showUserAction($id = null)
{
    var_dump($id);
}

路由.xml

<route id="acme_user_show" pattern="/show/{id}">
    <default key="_controller">AcmeUserBundle:User:show</default>
    <default key="id">null</default>
    <requirement key="id">\d+</requirement>
</route>

我会假设 2 给出类似的结果,这是正常的吗?如何在 xml 中给出默认的 null 值?


  • 我访问/showUser路径以测试$id变量是否为空。
  • 我也试过<default key="id" />而不是<default key="id">null</default>=>没有成功
4

2 回答 2

8

只是为了澄清帕特的回答,这是固定的,指定它的正确方法是这样的:

 <default key="threadId" xsi:nil="true" />

因此,在您的情况下,完整的路线规范将如下所示:

<route id="acme_user_show" pattern="/show/{id}">
    <default key="_controller">AcmeUserBundle:User:show</default>
    <default key="id" xsi:nil="true" />
    <requirement key="id">\d+</requirement>
</route>
于 2014-04-08T18:34:29.427 回答
2

此功能尚未在 xml 中实现。请参阅此错误报告

@Aitboudad:路由 xml 加载器不支持 null 值,表示 null xml 元素的正确方法是 xsi:nil="true"。

于 2013-03-20T00:01:28.763 回答