在Symfony 3中,如果你想創建一個表單作爲服務,所以你可以注入服務或參數,你只能做一次。Symfony 3 - 作爲服務的表單問題
我想要做的是有2種形式使用相同的表單類型級的服務,但需要不同的參數,讓我設置驗證人羣使用:
services:
add_page:
class: BackendContent\Form\PageType
arguments: [ "add" ]
tags:
- { name: form.type }
edit_page:
class: BackendContent\Form\PageType
arguments: [ "edit" ]
tags:
- { name: form.type }
但是,當我去創造在我的控制器的形式,我所能做的就是用FQCN,而不是使用形式等的別名:
$form = $this->container->get('form.factory')->createForm(PageType::class);
這將只允許我使用該服務definations之一。
解決這個問題的唯一的另一種方法是創建2點的形式,並延長1個網頁類型的形式,所以我再有,AddPageType,EditPageType和網頁類型,我真的不希望這樣做。
有沒有人有解決這個問題的辦法?
對不起,如果這是我忽略的東西,但我無法在文檔中找到任何東西。
謝謝!
爲什麼它沒有意義的,有多個別名形式一類來源?特別是鑑於它確實是一個相當廣泛使用的技術? – Cerad
真的嗎?當表單域完全相同時?想到DRY。我唯一的區別是告訴它使用什麼樣的驗證規則。爲什麼我會多次需要表單類? – coder4show
@ coder4show你可以使用表單選項來配置這些東西。更重要的是,如果你設置了自定義表單類型的'validation_groups'選項,我相信它的所有子節點都會自動繼承它。 –