我在Symfony2中遇到表单验证问题:
class CompanyType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options){
$builder
->add('name', 'text',array("label"=> "Nazwa",'max_length' => 255, 'required'=>true))
->add('url', 'url',array("label"=> "Adres strony",'max_length' => 255, 'required'=>true))
->add('logo', 'file',array("label"=> "Logo",'max_length' => 255))
->add('Dodaj', 'submit');
}
public function setDefaultOptions(OptionsResolverInterface $resolver){
$resolver->setDefaults(array(
'data_class' => 'Diliges\DiligesBundle\Entity\Company',
'error_bubbling' => true
));
}
}
public function addAction(Request $request){
$company = new Company();
$form = $this->createForm(new CompanyType(), $company);
$form->handleRequest($request);
if ($form->isValid()) {
try{
$company->setActive(false);
return $this->redirect($this->generateUrl('add_company_thx'));
}catch(PDOException $e){
}
}
...
properties:
name:
- NotBlank: ~
- MinLength: 3
url:
- NotBlank: ~
我正在尝试,并尝试,仍然$ form-> isValid()始终返回true。即使我提交空表格。
答案 0 :(得分:4)
您必须在错误的位置进行验证配置。查看yml配置所在的文档。 Basics of Validation
他们将配置文件放在src/Acme/BlogBundle/Resources/config/validation.yml
中。此外,您的配置格式不正确。您缺少实体定义。
Diliges\DiligesBundle\Entity\Company:
properties:
name:
- NotBlank: ~
- MinLength: 3
url:
- NotBlank: ~
如果您启用了不同类型的验证(如注释),那么可能导致此操作失效的另一个选项。确保yml已启用