为什么我的Doctrine实体给我一个字符串而不是数组?

时间:2012-10-18 17:37:02

标签: symfony doctrine doctrine-orm

在某些情况下,当我从数据库中选择某些东西时,doctrine会给我一个带有数组的对象,其中包含其他项目。其他时候,它只给我一个带有文本“Array(10)”的字符串。我不确定为什么在某些情况下会发生这种情况而在其他情况下不会发生。

我的存储库功能不可能更简单。

public function getCharacteristics()
{
$qb = $this->createQueryBuilder('b')
                ->select('b');                         

    return $qb->getQuery()
              ->getResult();
}

实体中的对象是

/**
 * @ORM\ManyToOne(targetEntity="ItemCharacteristic", inversedBy="children")
 * @ORM\JoinColumn(name="parent_id", referencedColumnName="id")
 */
protected $parent;


public function __construct()
{
    $this->children = new \Doctrine\Common\Collections\ArrayCollection();
    $this->parent = new \Doctrine\Common\Collections\ArrayCollection();     
}


/**
 * Get parent
 *
 * @return WorkRecorder\WorkBundle\Entity\ItemCharacteristic 
 */
public function getParent()
{
    return $this->parent;
}

我想在twig中访问itemCharacteristic.parent.name,但我不能,因为它是一个字符串而不是父数组。这是Doctrine返回的对象的转储:

[14]=>
  object(stdClass)#481 (7) {
    ["__CLASS__"]=>
    string(49) "WorkRecorder\WorkBundle\Entity\ItemCharacteristic"
    ["id"]=>
    int(16)
    ["name"]=>
    string(14) "Equal Measures"
    ["description"]=>
    string(0) ""
    ["sort_order"]=>
    int(2)
    ["children"]=>
    string(8) "Array(0)"
    ["parent"]=>
    string(49) "WorkRecorder\WorkBundle\Entity\ItemCharacteristic"
  }

我没有其他实体父母的这个问题。我做错了什么?

0 个答案:

没有答案