【发布时间】:2015-08-17 19:45:51
【问题描述】:
我正在使用 JMS 序列化程序包在 restful api 中序列化和反序列化数据。我有以下情况:
实体:
/**
* Settings
*
* @ORM\Table(name="user_settings")
* @ORM\Entity
*
* @JMS\ExclusionPolicy("none")
* @JMS\AccessType("public_method")
*/
class Settings
{
/**
* @var boolean
*
* @ORM\Column(name="search", type="boolean")
*
* @JMS\Groups({"get", "update"})
*/
private $search;
}
我已将 JMS 配置为使用 Doctrine 对象构造函数。
当我进行 POST 并将数据反序列化到 Settings 对象时,它可以工作,但在这样的场景中:
{"id":5, "search":"string"}
它会自动将字符串“string”转换为布尔值。我相信这与教义有关。如果我将 ORM 列注释修改为 type="string",则不会发生强制转换,这是我想要的,但我想保留 type="boolean"。
在当前情况下,我无法验证对象并说“字符串”不是有效值,因为在我可以对对象进行任何验证之前,它被转换为布尔值。
如果您需要进一步的解释,请告诉我,非常感谢您的帮助。
【问题讨论】:
标签: symfony doctrine-orm jmsserializerbundle