簡體   English   中英

Symfony2:$ form-> isValid()始終為true

[英]Symfony2: $form->isValid() is always true

我在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
        ));
    }
}

Controller方法的一部分:

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。 即使我提交空白表格。

您必須在錯誤的位置進行驗證配置。 查看文檔,了解yml配置的放置位置。 驗證基礎

他們將配置文件放在src/Acme/BlogBundle/Resources/config/validation.yml 另外,您的配置格式不正確。 您缺少實體定義。

Diliges\DiligesBundle\Entity\Company:
    properties:
        name:
          - NotBlank: ~
          - MinLength: 3
        url:
          - NotBlank: ~

可能使此方法不起作用的另一個選項是,如果您啟用了另一種類型的驗證(如注釋)。 確保已啟用ym​​l

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM