フォームビルダーで属性を定義し、カスタムフィールドでデフォルトと同じ属性を定義すると、他の属性は無視されます。フォームビルダーには次のものがあります:
$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',
)
))
すべてが期待どおりに機能します。JQDateType() で属性を定義するにはどうすればよいですか? JQDateType::getDefaultOptions() で array_merge() と array_merge_recursive() を使用しようとしましたが、役に立ちませんでした。