【发布时间】:2015-08-13 06:32:44
【问题描述】:
您好,我是 ZendFrame 工作的新手...我已按照一些基本教程使用教义 orm 构建模块。我已成功完成所有教程。
我现在正在尝试使用这样的魔法 getter 和 setter 创建实体,而不是为实体类的每个属性编写所有 getter 和 setter:
/* Magic getter to expose protected properties.
*
* @param string $property
* @return mixed
*/
public function __get($property) {
return $this->$property;
}
/**
* Magic setter to save protected properties.
*
* @param string $property
* @param mixed $value
*/
public function __set($property, $value) {
$this->$property = $value;
}
这就是我过去在控制器中处理表单的方式:
$user = new User();
$builder = new DoctrineAnnotationBuilder($entityManager);
$form = $builder->createForm($user);
$form->setHydrator(new DoctrineHydrator($entityManager,'Module/Entity/User'));
$form->bind($user);
if($this->getRequest()->isPost())
{
$form->setData($this->getRequest()->getPost());
if($form->isValid()) {
$u = $form->getData();
var_dump($u);exit();
}
}
当我提交带有正确数据的表单时,表单提交时没有任何错误,但表单中用户对象的属性为空:
object(Module\Entity\User)[272]
private 'id' => null
private 'firstname' => null
private 'lastname' => null
private 'email' => null
private 'password' => null
private 'rdate' => null
private 'role' => null
这可能是因为 Form 对象仅在绑定到它的对象类的 getter 和 setter 上中继......但我不确定...... :(
有什么解决方案可以让魔法 getter 和 setter 使用 zend 表单吗??
【问题讨论】:
标签: doctrine-orm zend-framework2