2017-02-09 48 views
0

我用symfony 3.2製作(同時使用PhpStorm.2016.3.2)一FormType.php建設者整型 - Symfony的

有那裏是把一個數字的形式需要的領域。

->add('authorPhone', NumberType::class, array('label' => 'Numéro de téléphone', 
    'required' => true, 
    'attr' => array(
     'class' => 'validate', 
     'id' => 'icon_telephone' 
    ) 
)) 

我只需要實際添加數字值,而我的問題是,如何使用annotations做到這一點?

我知道我應該加type="integer",但我不知道這是否可能在第一位。

謝謝您的幫助

回答

1

您應該使用Regex validation

有了註釋,這將是類似的東西:

use Symfony\Component\Validator\Constraints\Regex; 

/**/ 

/** 
* @Regex("[(\d) ]*") 
*/ 
protected $authorPhone; 

而在PHP:

use Symfony\Component\Validator\Constraints\Regex; 

/**/ 

->add('authorPhone', NumberType::class, array('label' => 'Numéro de téléphone', 
      'required' => true, 
      'attr' => array(
       'class' => 'validate', 
       'id' => 'icon_telephone' 
      ), 
      'constraints' => array(new Regex("[(\d) ]*")) 
     )) 

[(\d) ]*允許數字和空格。

+0

謝謝你的時間:) –

+0

是否有可能添加錯誤信息呢?如果它填滿了字母? (因爲實際上你的約束我仍然可以添加字母,這是正常的嗎?)@versgui –

+0

其實,如果你使用我的正則表達式,你應該使用TextType。如果不是,則使用此正則表達式:(\ d)*(僅限小數)。對於錯誤消息,請檢查[invalid_message](http://symfony.com/doc/current/reference/forms/types/form.html#invalid-message)參數。 –