如何使 Doctrine hydrator 填充实体?
Posted
技术标签:
【中文标题】如何使 Doctrine hydrator 填充实体?【英文标题】:How to make Doctrine hydrator populate the entity? 【发布时间】:2014-03-17 19:23:54 【问题描述】:这是我目前所拥有的,
表格:
use DoctrineModule\Stdlib\Hydrator\DoctrineObject as Hydrator;
class UserRegisterForm extends
Form implements InputFilterProviderInterface
public function __construct($entityManager)
parent::__construct('Practitioner');
$this
->setAttribute('method', 'post')
->setHydrator(new Hydrator($entityManager), 'App\Entity\Users', true)
->setObject(new Users())
;
// add fields here ...
控制器:
class UsersController extends AbstractActionController
public function addAction()
$request = $this->getRequest();
$form = new PractitionerRegisterForm($this->getEntityManager());
$users = new \App\Entity\Users;
$form->bind($users);
if ( $request->isPost() )
$form->setData($request->getPost());
// echo pre var_dump($this) /pre
$users->getDetails();
else
// do something here
return ['form' => $form];
但我从 $users->getDetails()
得到的是带有 NULL 的属性
那么如何使用 Hydrator 填充实体用户?
【问题讨论】:
【参考方案1】:解决方案:我必须使用$form->isValid()
来验证表单,该$form->isValid()
验证然后水合(填充)实体。
【讨论】:
以上是关于如何使 Doctrine hydrator 填充实体?的主要内容,如果未能解决你的问题,请参考以下文章
Doctrine DBAL ->execute() 和 Hydration,DB2 字段名称包括“#”