Php 条令使用多种列类型——数组和字符串
我将ORM与Symfony一起使用,其中一个实体是设置对象。在内部,值键可以是字符串或数组,生命周期回调会相应地进行调整。我遇到了一个问题,JMS序列化程序由于值键数组与列类型文本不匹配而变得混乱。有没有办法让这两者共存?如果内容不是数组,我能告诉条令退回到文本吗?它不使用条令,但WordPress在选项表中处理这类事情 编辑 下面是到目前为止的一些代码。它在对象中保存时正常工作,但在JMS序列化程序必须为API请求序列化它时失败 列定义Php 条令使用多种列类型——数组和字符串,php,symfony,doctrine,Php,Symfony,Doctrine,我将ORM与Symfony一起使用,其中一个实体是设置对象。在内部,值键可以是字符串或数组,生命周期回调会相应地进行调整。我遇到了一个问题,JMS序列化程序由于值键数组与列类型文本不匹配而变得混乱。有没有办法让这两者共存?如果内容不是数组,我能告诉条令退回到文本吗?它不使用条令,但WordPress在选项表中处理这类事情 编辑 下面是到目前为止的一些代码。它在对象中保存时正常工作,但在JMS序列化程序必须为API请求序列化它时失败 列定义 /** * @ORM\Column(type="text
/**
* @ORM\Column(type="text", nullable=true)
* @Expose
*/
protected $value;
根据需要取消/序列化列的自定义处理程序
/**
* @ORM\PrePersist
* @ORM\PreUpdate
* Serialize, if necessary
*/
public function serializeSetting() {
if (is_array($this->getValue())) {
$this->setValue(serialize($this->getValue()));
}
}
/**
* @ORM\postLoad
* Unserialize, if necessary
*/
public function unserializeSetting() {
$unserialized = @unserialize($this->getValue());
if ($unserialized !== false)
$this->setValue($unserialized);
}
如果您发布到目前为止的代码,可能会有所帮助。您的PHPDoc for Serialized设置错误。将/*替换为/**。序列化程序属性上的批注不能具有逻辑,但可以使用具有逻辑的访问器设置/获取序列化程序。