我想驗證包含下拉菜單和文本輸入字段的表單。Symfony2僅在包含某些內容時驗證文本輸入
用戶可以從下拉菜單中選擇一個項目。如果他想創建一個新項目,他可以使用下拉菜單旁邊的文本輸入字段。
這是我上傳類型:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->setAction('upload')
->setMethod('POST')
// project name dropdown menu
->add('projectname', 'choice' , array(
'label' => 'upload_project_label',
'choices' => $this->projects,
'attr' => array(
'class' => 'form-control some',
'required' => 'true'
)
))
// newprojectname text input
->add('newprojectname', 'text', array(
'label' => false,
'attr' => array(
'class' => 'form-control',
'required' => false,
'placeholder' => 'upload_newprojectname_placeholder'
)
)
)
...
這是我上傳的實體的一個片段:
/**
* @ORM\Column(type="text")
*
* @var string $projectname
* @Assert\NotBlank()
*/
protected $projectname;
/**
* @ORM\Column(type="text")
*
* @var string $newprojectname
* @Assert\Length(
* min = 3,
* max = 7,
* minMessage = "min message",
* maxMessage = "max message"
*)
*/
protected $newprojectname;
我的問題是有沒有檢查該字段newproject查詢的可能性被設置(即一個字符串被輸入)?如果是這樣,讓Assert註釋完成它的工作。
我不明白...你要檢查該字段不爲空,然後呢? – pabgaran
您可以創建['Callback'](http://symfony.com/doc/current/reference/constraints/Callback.html)斷言。 – Fracsi
@pabgaran - 我想檢查是否在該字段中輸入了內容,如果是這樣,請使用Assert註釋檢查輸入的值。這足夠清楚了嗎? – aszel