如何将POST数据绑定到对象可以保存或编辑到Doctrine。
我将Doctrine与注释实体一起使用。我不认为绑定数组数据到实体。
我也把Symfony的组件看成是独立的。
示例:
$_POST # form data , array
# this is how doctrine save object
$product = new Product();
$product->setName('product1');
$entityManager->persist($product);
$entityManager->flush();
我想要$product = $helper->convert($_POST, ...) # return product object
然后我可以将$ product坚持到$ entityManager。
答案 0 :(得分:1)
这将帮助您处理表单: http://symfony.com/doc/current/book/forms.html
将数据放在Entitiy用户的设置者身上。
$entity->setName('Mitchel');
如果你想在实体上发帖,你必须创建一个这样的函数:
public function setAttributes( array $values )
{
foreach( $values as $attribute => $value ) {
$dateEng = "/^([0-9]{4})-([0-9]{2})-([0-9]{2})$/";
$dateNl = "/^([0-9]{2})-([0-9]{2})-([0-9]{4})$/";
if( preg_match ($dateEng, $value) OR preg_match ($dateNl, $value) ){
$value = date_create( $value );
}
if(is_string( $value )){
if(preg_match( '/^\d+$/', $value )){
$value = (int) $value;
}
}
$this->{'set' . ucfirst( $attribute )}( $value );
}
return $this;
}
这适用于我=) 如果我找到一个不起作用的案例,我只需添加一些代码。