2015-07-25 2 views
2

Я хочу использовать Symfony Forms в проекте и строить классы форм. Если у меня есть класс ContactForm (как пример), я бы метод buildForm так:Symfony Forms ext FormBuilder

<?php 

... 

class ContactType extens AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->add('first_name', 'text') 
      ->add('email', 'email') 
     ; 
    } 
} 

То, что я хочу сделать, это есть специальные методы для каждого типа поля, как это:

<?php 

... 

class ContactType extens AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->addText('first_name') 
      ->addEmail('email') 
     ; 
    } 
} 

Кто-нибудь знает, как я могу расширить $ builder? Спасибо

+0

В чем разница? почему ты хочешь сделать это? – xurshid29

ответ

3

Вы пытались создать свой собственный класс, настроив использование FormBuilderInterface?

Я имею в виду, например:

use Symfony\Component\Form\FormBuilderInterface; 

class MyFormBuilderInterface extends AbstractType 
{ 
    private $builder; 

    function __construct(FormBuilderInterface $builder) 
    { 
     $this->builder = $builder; 
    } 
    private function addText($input) 
    { 
     $this->builder->add('first_name', 'text'); 
    } 

    private function addEmail($input) 
    { 
     $this->builder->add('email', 'email'); 
    } 
}