我有一个quote
具有字段的实体类,amount
该字段应小于在控制器的 newAction 中设置的动态值。
我在 formtype 类中添加了 amount 字段,其中我的 buildForm 方法如下
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('truckType')
->add('costPerTruck')
->add('amount');
$builder->addEventSubscriber(new AddQuoteDetailFieldSubscriber());
}
我的订阅者类如下
class AddQuoteDetailFieldSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents()
{
return array(FormEvents::PRE_SET_DATA => 'preSetData');
}
public function preSetData(FormEvent $event)
{
$product = $event->getData();
$form = $event->getForm();
if (null !== $product && null !== $product->getLimit()) {
if($product->getLimit() > 0){
$form->add('amount',null, array(
'data' => $product->getLimit(),
'constraints' => array(
new LessThanOrEqual(array('value' => $product->getLimit())),
)));
}
}
}
}
问题是限制已正确设置并显示在数量字段中,但约束似乎没有做任何事情,并且让大于限制的值通过。
如果我在 buildForm 方法中添加限制,例如
$builder
->add('truckType')
->add('costPerTruck')
->add('amount',null,array('constraints' => array(
new LessThanOrEqual(array('value' => 10)),
)));
然后该领域受到限制。
一直用这个把我的头撞到墙上,有没有人知道我做错了什么?或任何其他方式来实现这一目标?
谢谢!