Кто-то может объяснить мне разницу между buildForm и CreateFormBuilder? Каков наилучший способ создания форм? Я читаю symblog и он использует:symfony 2.6 buildForm против createFormBuilder
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
class EnquiryType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('name');
$builder->add('email', 'email');
$builder->add('subject');
$builder->add('body', 'textarea');
, но в документации Symfony я найти применение «createFormBuilder»
// src/Acme/TaskBundle/Controller/DefaultController.php
namespace Acme\TaskBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
class DefaultController extends Controller
{
public function newAction(Request $request)
{
// createFormBuilder is a shortcut to get the "form factory"
// and then call "createBuilder()" on it
$form = $this->createFormBuilder()
->add('task', 'text')
->add('dueDate', 'date')
->getForm();
return $this->render('AcmeTaskBundle:Default:new.html.twig', array(
'form' => $form->createView(),
спасибо !! есть много документации Symfony, но не подробное объяснение, как ваше. ! – stackdave
один вопрос: почему оба пути, не используйте: используйте Symfony \ Component \ Form \ FormBuilder; или это новый способ использования Symfony \ Component \ Form \ FormBuilderInterface; но в примере документации symfony просто используйте: используйте Symfony \ Component \ HttpFoundation \ Request; – stackdave
Becasue '$ this-> createFormBuilder()' является ярлыком, который исходит от контроллера Symfony, который вы расширяете. А что касается второго, тип формы расширяет определенный класс. – Artamiel