Это странно. У меня есть сущность, которая может содержать 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: Ошибка: вызов неопределенного метода Acme\MyBundle\Entity\Thing::current() в /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;
Но я не уверен, что еще делать.
add
в вашем классеThing
? - person bpoiss   schedule 11.06.2013var_dump()
объект перед вызовомgetThing()
? - person cheesemacfly   schedule 11.06.2013things
в этот момент должен быть коллекцией. - person Major Productions   schedule 11.06.2013var_dump()
, он появится вверху экрана. - person cheesemacfly   schedule 11.06.2013