从数据库检索后,确保Symfony2实体属性类型正确

从数据库检索后,确保Symfony2实体属性类型正确,symfony,doctrine-orm,entity,Symfony,Doctrine Orm,Entity,我有一个Symfony2实体,它具有给定类类型的非标量属性。属性可以安全地转换为字符串,这就是它在数据库中持久化的方式 从数据库检索此实体的实例时,属性的getter将返回一个字符串,而不是预期类的对象 以下是一个通用示例实体: <?php namespace Acme\ExampleBundle\Entity; class ExampleEntity { /** * @var \example\ComplexObject * @\Doctri

我有一个Symfony2实体,它具有给定类类型的非标量属性。属性可以安全地转换为字符串,这就是它在数据库中持久化的方式

从数据库检索此实体的实例时,属性的getter将返回一个字符串,而不是预期类的对象

以下是一个通用示例实体:

<?php
namespace Acme\ExampleBundle\Entity;    

class ExampleEntity
{    
    /**
     * @var \example\ComplexObject
     * @\Doctrine\ORM\Mapping\Column(type="string")
     */
    protected $property;        

    /**
     * @param \example\ComplexObject $property
     * @return \ExampleEntity 
     */
    public function setProperty(\example\ComplexObject $property) {
        $this->property = $property;
        return $this;
    }        

    /**
     * @return \example\ComplexObject
     */
    public function getProperty() {
        return $this->property;
    }        
}

您应该为此使用自定义映射类型。请参阅有关如何实现这些功能的详细信息。特别是查看
convertToPHPValue()
convertToDatabaseValue()
方法。

您应该为此使用自定义映射类型。请参阅有关如何实现这些功能的详细信息。特别是看一下
convertToPHPValue()
convertToDatabaseValue()
方法。

可能与延迟加载doctrineIs对象是一个实体还是另一个类有关?@Flosculus它是另一个类,或者可能与延迟加载doctrineIs对象是一个实体还是另一个类有关?@Flosculus它是另一个类