Symfony2 FOSRest将值设置为null

时间:2015-05-24 17:29:11

标签: php symfony doctrine-orm

在使用Symfony2构建的Web应用程序中,我需要能够将null值作为PUTPATCH请求的一部分发送到FOSRestBundle端点。 例如{ "available": null }。数据库字段是nullable boolean类型,由Doctrine设置。因此,实际上,该值必须能够为1, 0 or null(即未知)。但是,发送null值似乎被忽略了。这可能是Symfony2表单或FOSRest的问题。我尝试在表单中添加empty_value => nullempty_data => null,但似乎没有任何效果。知道是否有允许接受null作为选项的设置?

4 个答案:

答案 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。