我有两个人。 “机构”和“用户”。该机构与用户有着密切关系。我创建一个表单“InstitutionType”,如果我想保存一个新的机构,“handleReqeust($ request)”抛出此异常。
Neither the property "users" nor one of the methods "addUser()"/"removeUser()", "setUsers()", "users()", "__set()" or "__call()" exist and have public access in class "App\UserBundle\Entity\Institution".
实体用户
/**
* @ORM\ManyToOne(targetEntity="Institution", inversedBy="users")
* @ORM\JoinColumn(name="institution_id", referencedColumnName="id")
*/
protected $institution;
public function setInstitution(\App\UserBundle\Entity\Institution $institution = null)
{
$this->institution = $institution;
return $this;
}
public function getInstitution()
{
return $this->institution;
}
实体机构
/**
* @ORM\OneToMany(targetEntity="App\UserBundle\Entity\User", mappedBy="institution")
*/
protected $users;
public function addUser(\App\UserBundle\Entity\User $users)
{
$this->users[] = $users;
return $this;
}
public function removeUser(\Ebm\UserBundle\Entity\User $users)
{
$this->users->removeElement($users);
}
public function getUsers()
{
return $this->users;
}
InstitutionType
$users = $this->entityManager->getRepository('AppUserBundle:User')->findByIsActive(true);
->add('users', 'entity', array(
'label' => 'responsibleperson',
'attr' => array(),
'class' => 'AppUserBundle:User',
'choices' => $users,
'multiple' => false,
'expanded' => false,
'empty_value' => '----------------')
)
有人可以帮助我解决这个问题吗?
答案 0 :(得分:0)
将addUser
重命名为addUsers
,将removeUser
重命名为removeUsers
。
Symfony2 / Doctrine显然不知道单数/复数单词,并且无法猜测在users
集合中添加单个条目会在语义上更正确地调用addUser()
addUsers
。
请注意,您始终可以使用控制台命令doctrine:generate:entities AcmeDemoBundle:Institution
在实体类中生成缺少的字段。
如果这没有帮助,您需要确保在表单类型中使用相同的表示法,例如在实体配置中(注释,yml或xml)。