2011-08-18 126 views
1

需求:能夠動態​​地建立表單Symfony的1.4形式創世

結構(簡單的想法,而不是實際的結構)

Admin: Form Assignment, where you create what field you want your new Form to have 
FrontEnd: Where the New form will be implemented (this is the root of this question) 
FronEnd Storage: When the New form is filled out the data points are written to a set of tables 

的想法很簡單,走進管理員,選擇字段,字段類型,並你想要的標籤

IE

Field Name:*Enter a specific field name, like f_name or email 
FieldType: [Text, TextArea, Password, Radio, DatePicker, CheckBox, Select, etc] 
Label: What to display on the resulting form, f_name = First Name, etc 

然後我打在產生新的形式,我填好瞧的數據存儲在前端存儲表前端的頁面。

所以現在的問題是,想法是如何做到這一點,我已經有了管理部分完成的,它是動態建立和適當地結合一個前端,從我想上的建議。

目前我的想法是簡單地做一個殼形式是建立sfForm元素和適當的驗證爲每個字段(從什麼是在管理區域中輸入給定的字段)

我覺得這是一個巨大的醜陋的switch語句是做錯的方法,我確實找到了一個插件'spyFormBuilderInterface2Plugin',它是舊的,並且構建爲propel而不是教條,但這是我所追求的基本概念。那麼你會怎麼做呢?

請注意,我不是在尋找動態添加表格到目前的形式,我已經可以做到這一點,這也正是我的管理部分實現,我需要的數據創建了一個全新的形式編程

回答

1

我已經創建了像你所描述的東西,就像你說的那樣。

我有限定的形式,並且具有FormField秒的集合的模型FormDefinition。每個表單字段有一個widget_class,widget_options,validator_classvalidator_options

我有一個自定義myForm這就需要在它的構造函數FormDefinition。在myFormsetup()中,我遍歷所有字段,實例化小部件和驗證器。

怎麼一回事,因爲在我們的解決方案,我們需要/想保存在單獨的tabels所有形式的數據。我的myFormsfDoctrineForm延伸,我的後端有一些邏輯創建/更新(PHP)模型和數據庫定義,只需調用適當的Doctrine方法。但你也可以創建一個EAV商店。