【发布时间】:2014-06-15 06:03:55
【问题描述】:
我在用教义存储 php 序列化对象时遇到了一些问题, 当我使用以下代码存储时:
$item = new \Company\MyBundle\Entity\Frontend\table();
$item->setData(serialize($myPhpObject));
$this->_em->persist($item);
$this->_em->flush();
然后在另一个例子中:
$item = $this->_em->getRepository('MyBundle:frontend\table')->findOneById(...);
echo $item->getData(); // display only a part of the serialized object
我以某种方式找到了解决办法,但我想还有更好的办法:
$item->setData(json_encode(serialize($myPhpObject)));
当我使用它时,所有序列化的字符串都会被存储,我可以正确地反序列化它。你知道哪里出了问题吗?
-编辑-
这是从列数据设置的示例:
data:
type: string
length: null
fixed: false
nullable: true
column: data
【问题讨论】:
-
请提供有关您正在序列化的对象的更多详细信息,因为有很多解决方案取决于您的对象。拜托,php.net/manual/en/function.serialize.php 有很好的手册,在 cmets 你可以找到很多案例
-
你试过使用Doctrine内置的
object字段类型吗? -
你在getData()之后反序列化了吗?
-
@pomaxa 对象是 Swift 邮件库中的 Swift_Mime_Message。
-
@kix 我必须看看。
标签: php symfony serialization doctrine-orm