Symfony Param converter(routing)将可选变量设置为应为null的某个值
我有以下的路线声明Symfony Param converter(routing)将可选变量设置为应为null的某个值,symfony,Symfony,我有以下的路线声明 /** *@Route(“/{section}/entries/{entry}”,name=“entries\u list”) *@param Section$Section *@param Entry | null$Entry */ 公用函数条目\u列表(节$Section,条目$Entry=null) { dd(第节,$条目); } 当我输入以下url:/6/entries时,param converter将$entry变量设置为: App\Entity\Entry {
/**
*@Route(“/{section}/entries/{entry}”,name=“entries\u list”)
*@param Section$Section
*@param Entry | null$Entry
*/
公用函数条目\u列表(节$Section,条目$Entry=null)
{
dd(第节,$条目);
}
当我输入以下url:/6/entries时,param converter将$entry
变量设置为:
App\Entity\Entry {#3987 ▼
-id: 1
为什么它不是一个null
?我没有将任何默认值设置为1<代码>$section变量设置正确
当我尝试输入url:/6/entries/0时,我已将
$entry
设置为null
,因为数据库中没有此类记录。这似乎是SensioFrameworkExtraBundle中的错误/不需要的行为
节
可以有许多条目
和DoctrineParamConverter
使用条件进行类搜索,并首先加载与id为6的节
相关的条目
。但是,如果我在请求中显式地设置了null
,则不会触发任何额外的搜索
要使其按预期工作,我需要强制该类仅按ID进行搜索:
*@Route(“/{id}/entries/{entry}”,name=“entries\u list”)
*@ParamConverter(“entry”,options={“id”:“entry”})