symfony2表单验证单选按钮

时间:2013-11-20 10:50:59

标签: forms validation symfony radio-button formbuilder

我正在使用此代码创建symfony2表单:

$builder
        ->add('layout_type', 'choice', array(
                'choices'   => array(0 => 'Small layout', 1 => 'Big layout'),
                'expanded' => true,
                'disabled' => $disabled
            ))

....            ))

我遇到的问题是单选按钮验证(layout_type,choice)。

当我没有选择任何单选按钮并提交表单时,数据不会插入数据库中。 这是正确的,因为单选按钮是必填字段,但是当重新加载表单时,我没有关于单选按钮的错误消息。我正确地收到了所有其他字段的错误。

我正在使用的Twig:

<table width="1000">
        <tr>
            <td class="label">{{ form_label(form.layout_type, 'LAYOUT_TYPE') }}</td>
            <td class="widget">{{ form_widget(form.layout_type) }} {{ form_errors(form.layout_type) }}</td>
        </tr>
        ...

对于验证,我使用的是注释:

 /**
 * @var Integer
 * @Assert\NotBlank(message="NOT_EMPTY")
 */
protected $layoutType;

我的问题只有$ layoutType单选按钮的错误消息 有人知道什么是问题。 THX

2 个答案:

答案 0 :(得分:0)

try this:

'choices'   => array(0 => 'Small layout', 1 => 'Big layout'),
                    'expanded' => true,
                    'disabled' => $disabled,
                    'constraints' => new Assert\NotBlank(array('message' => 'YOUR_MESSAGE'))

答案 1 :(得分:0)

你添加了

use Symfony\Component\Validator\Constraints as Assert;

在您的实际实体之前

class entity {

    /**
     * @Assert\NotBlank()
     */
    public $layoutType;
     ........
}