在使用Symfony2构建的Web应用程序中,我需要能够将null
值作为PUT
或PATCH
请求的一部分发送到FOSRestBundle端点。
例如{ "available": null }
。数据库字段是nullable
boolean
类型,由Doctrine设置。因此,实际上,该值必须能够为1, 0 or null
(即未知)。但是,发送null
值似乎被忽略了。这可能是Symfony2表单或FOSRest的问题。我尝试在表单中添加empty_value => null
和empty_data => null
,但似乎没有任何效果。知道是否有允许接受null
作为选项的设置?
答案 0 :(得分:4)
布尔值通常为true或false,如何确定它是未选中的,因为它为null或未选中,因为它为false,无论是否为false。因此,如果你想要3个选择,最好使用选择字段而不是复选框,使用(选择,是,否)和值(null,1,0)。
您可以查看此内容,但我认为它不会对https://github.com/symfony/symfony/issues/10364
有所帮助答案 1 :(得分:2)
尝试在您的配置中设置:
fos_rest:
serializer:
serialize_null: true
答案 2 :(得分:1)
也许你可以尝试做一个虚拟财产发送字符串" 0"," 1"或" null"并公开为您的其他财产的名称。
答案 3 :(得分:1)
在DB设计时将默认值设置为NULL并在使用查询插入时忽略该字段,它将自动插入NULL。