2016-01-29 25 views
2

::類用於Symfony 3的形式是什麼?Symfony 3表單 - 什麼是::類和名稱在哪裏?

例如:

->add('task', TextType::class) 

$form = $this->createForm(TaskType::class, $task); 

我在哪裏可以閱讀有關該方法的::類?

在Symfony2的是:

public function getName() 
{ 
    return 'appbundle_task'; 
} 

而旁邊鑑於我有前綴,例如:

<input id="appbundle_task_name" type="text" name="appbundle_task[name]"> 

現在是什麼在輸入生成名稱的原則?

回答

4

::class用於類名稱解析。通過這個,你可以獲得班級的完整名稱(FQCN)。您可以在documentation中閱讀。

在Symfony 3之前,您必須將類型實例直接傳遞給FormBuilder::addForm::addFormFactory。現在您需要傳遞完全限定類型的類名稱,並且您可以使用::class來完成此操作。

形式類型的getName()不再需要,因爲他們現在的FQCN鑑定。如果你想自定義Twig中類型的塊前綴,你應該添加getBlockPrefix

public function getBlockPrefix() 
{ 
    return 'appbundle_task'; 
} 
+0

謝謝,但現在字段前綴是沒有命名空間。是否可以更改字段前綴? – caga

+0

'getBlockPrefix'沒有辦法嗎? – Federkun

+0

謝謝@Federkun!在升級到symfony v3 +之後,這固定了我的表單元素的** id **和** name **屬性。 –

相關問題