我正在使用symfony2表单,现在我收到消息"此值不应为null。" .. 现在"这个价值" ..这个价值是多少?以及如何解决这个问题?
通过转储错误:($ form-> getErrors())我得到了
array (size=3)
0 =>
object(Symfony\Component\Form\FormError)[2418]
protected 'messageTemplate' => string 'This value should not be null.' (length=30)
protected 'messageParameters' =>
array (size=0)
empty
protected 'messagePluralization' => null
1 =>
object(Symfony\Component\Form\FormError)[2420]
protected 'messageTemplate' => string 'This value should not be null.' (length=30)
protected 'messageParameters' =>
array (size=0)
empty
protected 'messagePluralization' => null
2 =>
object(Symfony\Component\Form\FormError)[2421]
protected 'messageTemplate' => string 'This value should not be null.' (length=30)
protected 'messageParameters' =>
array (size=0)
empty
protected 'messagePluralization' => null
在一些断言之后,一个formError消失了。那是什么:
/**
* @ORM\Column(type="integer")
* @Assert\NotNull()
*/
protected $price;
var_dump( $reservation->getPrice(), is_null( $reservation->getPrice() ) );
结果:
float 733
boolean false
但是在断言中这是一个错误..
实体失败:
/**
* @ORM\Column(type="integer")
* @Assert\NotNull()
*/
protected $price;
/**
* @ORM\ManyToOne(targetEntity="Caravan", inversedBy="caravan")
* @ORM\JoinColumn(name="caravan_id", referencedColumnName="id")
* @Assert\NotNull()
*/
protected $caravan;
/**
* @ORM\Column(type="datetime")
* @Assert\NotNull()
*/
protected $created;
这是我在isValid检查之前在控制器中设置的3个属性。如果我这样做:
$form->getData();
它有正确的数据。
答案 0 :(得分:0)
问题是:
无效:
$form->bind( $request );
$reservation->setCreated( new \DateTime() );
if( $form->isValid() ){
}
会工作:
$reservation->setCreated( new \DateTime() );
$form->bind( $request );
if( $form->isValid() ){
}
当表格绑定时,他会检查他的有效性。 所以在那以后他再也不会检查了。
所以一点建议,在isValid check =)之前的最后一刻将其绑定