2016-10-09 7 views
3

既存のSymfony3タイプにカスタムヘルプを追加する方法はありますか? Symfony2のでsymfony3のすべてのFormTypeにヘルプオプションを追加

、私はこのhttp://toni.uebernickel.info/2012/11/03/how-to-extend-form-fields-in-symfony2.1.htmlのようにそれをやったが、今、私はSymfony3にアップグレードすることだし、それはもはや動作しません - それは私にオプション「ヘルプ」を与えるは存在しません。

http://symfony.com/doc/current/form/form_customization.html#adding-help-messagesは動作しますが、それは、テンプレートにすべてのヘルプテキストを移動するために必要になります。

{{ form_widget(form.title, {'help': 'foobar'}) }} 

...型クラスから:

->add(
    'periodFrom', 
    TextType::class, 
    [ 
     'label' => 'period-from', 
     'required' => false, 
     'help' => 'period-from.help' 
    ] 
) 

私はそれを避けるためにしたいと思います。ありがとう。これを行うには、これhttp://symfony.com/doc/current/form/form_customization.html#adding-help-messages後、あなたがすべてのフォームフィールドにhelpオプションを渡すために、フォームタイプの拡張機能を作成することができます

答えて

1

// src/AppBundle/Form/Extension/FormTypeExtension.php 

class FormTypeExtension extends AbstractTypeExtension 
{ 
    public function buildView(FormView $view, FormInterface $form, array $options) 
    { 
     $view->vars['help'] = $options['help']; 
    } 

    public function configureOptions(OptionsResolver $resolver) 
    { 
     $resolver->setDefaults(array(
      'help' => null, 
     )); 
    } 

    public function getExtendedType() 
    { 
     return FormType::class; 
    } 
} 

今すぐフォームタイプの拡張子を登録します。

services: 
    app.form_type_extension: 
     class: AppBundle\Form\Extension\FormTypeExtension 
     tags: 
      - { name: form.type_extension, extended_type: Symfony\Component\Form\Extension\Core\Type\FormType } 
関連する問題