symfony2失败并显示错误“此值不应为null”

时间:2012-11-25 19:37:07

标签: symfony assert

我正在使用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();

它有正确的数据。

1 个答案:

答案 0 :(得分:0)

问题是:

无效:

$form->bind( $request );

$reservation->setCreated( new \DateTime() );

if( $form->isValid() ){

}

会工作:

$reservation->setCreated( new \DateTime() );

$form->bind( $request );

if( $form->isValid() ){

}

当表格绑定时,他会检查他的有效性。 所以在那以后他再也不会检查了。

所以一点建议,在isValid check =)之前的最后一刻将其绑定