这很奇怪。我有一个可以包含其他相关实体的 ArrayCollection 的实体。当我创建几个帮助方法来允许我添加/检索单个实体的值时,我得到一个 Symfony2 异常,告诉我该方法未定义。我包括命名空间,所以我不知道问题是什么。下面的代码(名称因保密协议而略有变化):
namespace Acme\MyBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
// ...
public function setThing($thing)
{
$this->things->add($thing);
}
public function getThing()
{
return $this->things->current();
}
真正奇怪的是它在current()
但不是抛出异常add()
:
FatalErrorException:错误:调用 /home/kevin/www/project/vendor/acme/my-bundle/Acme/MyBundle/Entity/MyEntity.php 第 106 行中未定义的方法 Acme\MyBundle\Entity\Thing::current()
从错误来看,它似乎没有things
被视为 ArrayCollection。有没有办法强制things
成为 ArrayCollection?我已经有以下内容:
/**
* @var ArrayCollection things
*
* @ORM\OneToMany(targetEntity="Thing", mappedBy="other")
*/
private $things;
但我不确定还能做什么。