Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation symfony2表单验证formbuilder和自定义表单类型_Validation_Symfony - Fatal编程技术网

Validation symfony2表单验证formbuilder和自定义表单类型

Validation symfony2表单验证formbuilder和自定义表单类型,validation,symfony,Validation,Symfony,我正在创建一个具有ancustom表单类型的表单 这是我的主要表格: public function buildForm(FormBuilder $builder, array $options) { $builder->add('area', new AreaSelectType($this->em, true, true, $this->organizercountry), array('selectedArea' => null,'label' =>

我正在创建一个具有ancustom表单类型的表单

这是我的主要表格:

public function buildForm(FormBuilder $builder, array $options) {

    $builder->add('area', new AreaSelectType($this->em, true, true, $this->organizercountry), array('selectedArea'  => null,'label' => 'City'));        
    $builder->add('location', new LocationAutocompleteType('#steptwo_location_autocomplete', '#steptwo_location_hidden', '#steptwo_area_pkid'));                        
}

public function getDefaultOptions(array $options)
{

    $collectionConstraint = new Collection(array(            
        'area' => new NotNull(array('message' => 'nicht leer')),            
        'location' => new NotNull(array('message' => 'nicht leer'))            
    ));

    return array('validation_constraint' => $collectionConstraint);                
} 
这是LocationAutocompleteType:

public function buildForm(FormBuilder $builder, array $options) {

    $builder->setAttribute('source', $options['source']);                        
    $builder->add('autocomplete', 'text', array('label' => false, 'attr' => array('autocomplete' => 'off')));
    $builder->add('hidden', 'hidden', array('label' => false, 'attr' => array('autocomplete' => 'off')));        
}

public function getDefaultOptions(array $options) {

    $collectionConstraint = new Collection(array(            
        'hidden' => new NotNull(array('message' => 'nicht leer')),                        
    ));

    return array('validation_constraint' => $collectionConstraint, 'source' => 'organizer.ajax.location');                                
}
我所做的每一件事都没有验证自定义Formtype。
我必须如何正确验证表单类型并通过父表单中的Location属性获取错误?

在主表单的
getDefaultOptions
方法中,您必须将
'cascade\u validation'=>true
添加到返回的数组中,以启用对子表单的验证。这是一个最近的变化,尚未在文档中更新