これは奇妙です。他の関連エンティティの ArrayCollection を含むことができるエンティティがあります。いくつかのヘルパー メソッドを作成して、単一のエンティティの値を追加/取得できるようにすると、メソッドが定義されていないことを示す Symfony2 例外が発生します。名前空間を含めているので、何が問題なのか途方に暮れています。以下のコード (NDA により名前が若干変更されています):
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: エラー: Call to undefined method Acme\MyBundle\Entity\Thing::current() in /home/kevin/www/project/vendor/acme/my-bundle/Acme/MyBundle/Entity/MyEntity.php 行 106
エラーから判断するthings
と、ArrayCollection として扱われていないようです。強制的things
に ArrayCollection にする方法はありますか? 私はすでに次のものを持っています:
/**
* @var ArrayCollection things
*
* @ORM\OneToMany(targetEntity="Thing", mappedBy="other")
*/
private $things;
しかし、他に何をすべきかわかりません。