有人可以解釋我之間的區別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