此代码转储正确$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);
}
Run Code Online (Sandbox Code Playgroud)
而以下代码给出了一个$id类型的变量string:string(4) "null"
/**
* Show user
*
*/
public function showUserAction($id = null)
{
var_dump($id);
}
Run Code Online (Sandbox Code Playgroud)
routing.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>
Run Code Online (Sandbox Code Playgroud)
我会假设2给出类似的结果,这是正常的吗?如何在xml中给出默认的空值?
/showUser路径来测试$id变量是否为null.<default key="id" />而不是<default key="id">null</default>=>没有成功只是为了澄清Patt的答案,这是固定的,指定它的正确方法是这样的:
<default key="threadId" xsi:nil="true" />
Run Code Online (Sandbox Code Playgroud)
所以在你的情况下完整的路由规范将是这样的:
<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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1966 次 |
| 最近记录: |