【发布时间】:2018-12-27 22:24:36
【问题描述】:
我有一个我的实体成员是一个arrayCollection。使用经典的表单构建器可以正常工作,我可以选择多个项目并将其保留。但是当我尝试更新控制器中的对象时,出现错误:“调用数组上的成员函数 setFaavailability()”。
我的实体简历:
/**
* @ORM\ManyToOne(targetEntity="App\Entity\FaAvailability",
inversedBy="faavailability")
* @ORM\JoinColumn(nullable=true)
* @ORM\Column(type="array")
*/
public $faavailability;
/**
* @return mixed
*/
public function getFaavailability()
{
return $this->faavailability;
}
/**
* @param mixed $faavailability
*/
public function setFaavailability($faavailability)
{
$this->faavailability = $faavailability;
}
在我的控制器中:
$varFaavailability = $animal->faperson->getFaavailability();
foreach($varFaavailability as $availability){
if($availability->getName() == $animal->typepet->getName()){
$varFaavailability->removeElement($availability);
$faPerson = $em->getRepository(FaPerson::class) >findById($animal->faperson->getId());
$faPerson->setFaavailability($varFaavailability);
$em->persist($faPerson);
$em->flush();
}
}
有什么想法吗?
【问题讨论】:
-
尝试从 $faavailability 的注释中删除“@ORM\Column(type="array")”。
-
ManyToOne 关系,不返回 arrayCollection,只有 ManyToMany 或 oneToMany
标签: php symfony doctrine arraycollection