0

当我在表单构建器中定义属性并在自定义字段中定义与默认属性相同的属性时,其他属性将被忽略。在表单生成器中,我有:

    $builder
            ->add('validityOfADecisionOnDisability', new JQDateType(), array(
                'attr' => array(
                    'rel' => 'permanent',
                )
            ))

和自定义字段

class JQDateType extends AbstractType {

public function getDefaultOptions(array $options)
{
    return array(
        'widget' => 'single_text',
        'format' => 'yyyy-MM-dd',
        'attr' => array(
            'class' => 'datepicker'
        )
    );
}

它呈现html

<input type="text" rel="permanent" required="required" 
  name="profile[validityOfADecisionOnDisability]" 
  id="profile_validityOfADecisionOnDisability">

没有课。但是当我将类添加到构建器中的属性时

    $builder
            ->add('validityOfADecisionOnDisability', new JQDateType(), array(
                'attr' => array(
                    'rel' => 'permanent',
                    'class' => 'datepicker',
                )
            ))

eevrything 按预期工作。我应该如何在 JQDateType() 中定义属性?我尝试在 JQDateType::getDefaultOptions() 中使用 array_merge() 和 array_merge_recursive() 但它没有帮助。

4

4 回答 4

1

这是一个在 Symfony 2.1 中修复的错误。

于 2012-07-26T06:09:39.177 回答
0

@Koral 我猜你可以在你的实体类中使用注释比'getDefaultOptions'更好,你可以在这里看到:

http://symfony.com/doc/current/book/validation.html

于 2012-05-15T22:40:09.670 回答
0

是的,您可以直接在实体类中验证表单的所有字段,例如:

/**
 * @Assert\Min(limit = "18", message = "You must be 18 or older to enter")
 */
 protected $age;
于 2012-05-16T20:30:02.523 回答
0

听起来像一个错误。你应该在https://github.com/symfony/symfony/issues上开一张票

于 2012-05-20T11:04:03.090 回答