2014-12-02 49 views
0

我想重載一個包的表單FOSComment。我想知道我必須創建一個新的捆綁評論,或者如果我可以從我的工作/主要捆綁中做到這一點?在symfony中重載一個表格

對不起,我的英語。

謝謝 大衛

namespace FOS\CommentBundle\Form; 

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilderInterface; 
use Symfony\Component\OptionsResolver\OptionsResolverInterface; 

class CommentType extends AbstractType 
{ 
    private $commentClass; 

    public function __construct($commentClass) 
    { 
     $this->commentClass = $commentClass; 
    } 

    /** 
    * Configures a Comment form. 
    * 
    * @param FormBuilderInterface $builder 
    * @param array    $options 
    */ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder->add('body', 'textarea') 
       ->add('lien', 'text', array('required'  => false, 
              'empty_data' => null)); 
    } 

    public function setDefaultOptions(OptionsResolverInterface $resolver) 
    { 
     parent::setDefaultOptions($resolver); 
     $resolver->setDefaults(array(
      'data_class' => $this->commentClass, 
     )); 
    } 

    public function getName() 
    { 
     return "fos_comment_comment"; 
    } 
} 

因爲我把我的領域留置權直接在供應商檔案,我知道是不是好辦法的時刻。

+0

你想覆蓋窗體控制器或從該捆綁樹枝模板? – 2014-12-02 06:05:23

+0

嗨稻草,我把我需要的形式放在主題中。需要重寫formtype。 – user3417911 2014-12-02 17:01:07

回答

0

我認爲所有你需要做的是超越形式的服務定義你想重載:

例如(如果你有一個services.yml)

fos_comment.form_type.comment.default 
    class: Project/MyBundle/Form/CustomFormType 
    arguments:[%fos_comment.model.comment.class%] 
    tags: 
     - { name: form.type, alias: fos_comment_comment } 
+0

謝謝Derick。是的,我有一個service.yml,我曾經做過一些服務,但不是很擅長。 :) 我把我需要在我的主題超載的形式。你有鏈接,我可以找到關於如何提供服務的例子嗎? – user3417911 2014-12-02 16:57:26