FormType内で設定する方法

フォームの各項目はEccube/Form/Type内にあるFormTypeクラスで設定されています。
ContactType.phpの中では次のように「問い合わせ内容」項目が設定されています。

$builder
->add('contents', 'textarea', array(
                'help' => 'form.contact.contents.help',
                'constraints' => array(
                    new Assert\NotBlank(),
                ),
))

これにクラス名を付けるにはattr配列を付け足します。class_nameを付けたいクラス名に変更してください。

->add('contents', 'textarea', array(
                'help' => 'form.contact.contents.help',
                'constraints' => array(
                    new Assert\NotBlank(),
                ),
                'attr' => array(
                    'class' => 'class_name'
                ),
            ))

Twig内で設定する方法

ContactTypeでnameやaddressは子要素を持つ集合体として定義されています。
これにclassを設定しても子要素には反映されません。
その場合はTwigテンプレート内で直接子要素にclassを設定しましょう。

<dd class="form-group input_name">
{{ form_widget(form.name.name01) }}
{{ form_widget(form.name.name02) }}
{{ form_errors(form.name.name01) }}
{{ form_errors(form.name.name02) }}
</dd>

この部分を次のように書き換えます。

<dd class="form-group input_name">
{{ form_widget(form.name.name01, {attr : {class : 'class_name'}}) }}
{{ form_widget(form.name.name02) }}
{{ form_errors(form.name.name01, {attr : {class : 'class_name'}}) }}
{{ form_errors(form.name.name02) }}
</dd>

これでInputに対してクラスが設定できたはずです!

この方法ではクラスだけでなくIDやdata-属性も付与できますので、ECCUBE3をご利用の方はぜひお試しください。