我正在嘗試使用symfony2創建一個web服務。我想web服務進行結構化和傾聽:從symfony2中的帖子字段中刪除表單名稱
POST到/團隊/列表使用參數鍵1 =值,鍵2 =值
爲了驗證目的,我創建了一個TeamForm對象和TeamFormModel驗證數據(使用註釋)。我遇到的問題是表單正在尋找團隊[key1]和團隊[key2],而不是僅將key1和key2綁定到TeamFormModel。
有沒有辦法將表單配置爲不使用團隊[*]?
我正在嘗試使用symfony2創建一個web服務。我想web服務進行結構化和傾聽:從symfony2中的帖子字段中刪除表單名稱
POST到/團隊/列表使用參數鍵1 =值,鍵2 =值
爲了驗證目的,我創建了一個TeamForm對象和TeamFormModel驗證數據(使用註釋)。我遇到的問題是表單正在尋找團隊[key1]和團隊[key2],而不是僅將key1和key2綁定到TeamFormModel。
有沒有辦法將表單配置爲不使用團隊[*]?
如果您使用的是2.1分支,很容易,您可以簡單地創建一個空名稱的表單。
$form = $this->get('form.factory')->createNamed(
'', // the name
new TeamType(), // the type
$team // the data
);
$form->bindRequest($request);
因此它會按照您的預期工作。
但是,如果你使用的是2.0分支,據我所知,它不支持,你必須做手工綁定:
$form = $this->createForm(new TeamType(), $team);
$from->bind($request->request->all());
您可以驗證實體,而無需創建形式。您可以從POST數據創建實體對象並將其傳遞給驗證器。見食譜的validation部分。
如果您不希望每次都從請求參數創建實體對象,則可以使用json或xml格式發佈數據,然後使用JMSSerializerBundle將序列化爲實體對象。
嗨@ m2mdas,我真的想知道..你如何從POST數據創建一個實體對象?意思是,有沒有簡單的方法來做到這一點,而無需單獨提取所有參數並使用setter? – Mick 2014-09-17 14:07:18