在控制器中,我定义了一个表单,允许用户对某些字段进行一些更改:
$page['community']
是具有president
,vicepresident
,secretary
和administrator
属性的实体。每个都与Pro\UserBundle\Entity\User
实体(id)相关联:
$form = $this->createFormBuilder($page['community'])
->add('president', 'entity', array(
'label' => "Presidente",
'class' => 'Pro\UserBundle\Entity\User',
'property' => 'fullName',
'choices' => $page['community']->getOwners()
))
->add('vicepresident', 'entity', array(
'label' => "Vicepresidente",
'class' => 'Pro\UserBundle\Entity\User',
'property' => 'fullName',
'choices' => $page['community']->getOwners(),
'required' => false
))
->add('secretary', 'entity', array(
'label' => "Secretario",
'class' => 'Pro\UserBundle\Entity\User',
'property' => 'fullName',
'choices' => $page['community']->getOwners(),
'required' => false
))
->add('administrator', 'entity', array(
'label' => "Administrador",
'class' => 'Pro\UserBundle\Entity\User',
'property' => 'fullName',
'choices' => $page['community']->getMembers(),
'required' => false
))
->getForm();
if ($this->getRequest()->isMethod('post')) {
if ($form->bind($this->getRequest())->isValid()) {
$this->getEntityManager()->flush();
...
这是正确的。但现在我想根据更改的属性触发一些事件。例如。我希望在administrator
属性发生变化时触发事件。
我可以获得全新的价值观,但我不知道其中哪些已发生变化。我可以在刷新之前获取这些值,然后将每个值与新值进行比较,但也许有一种更简单的方法来实现它。有什么想法吗?