2012-03-30 12 views
1

symfony2を使ってWebサービスを作成しようとしています。私は、Webサービスは、構造化のために聞くことがしたいと思います:symfony2の投稿フィールドからフォーム名を削除する

、私はTeamFormオブジェクトとTeamFormModelを作成したPOST検証目的のためのparamsキー1 =値とキー2 =値2

と/チーム/リストに

(注釈を使用して)データを検証します。私が抱えている問題は、フォームがチーム[key1]とチーム[key2]の代わりにTeam1Modelにバインドするkey1とkey2だけを探しているということです。

チーム[*]を使用しないようにフォームを設定する方法はありますか?

答えて

6

ブランチ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()); 
2

フォームを作成せずに、エンティティを検証することができます。 POSTデータからエンティティオブジェクトを作成し、バリデータに渡すことができます。クックブックのvalidationセクションを参照してください。

要求パラメータからエンティティオブジェクトを作成したくない場合は、jsonまたはxml形式でデータを送信してから、JMSSerializerBundleを使用してエンティティオブジェクトにデシリアライズできます。

+0

こんにちは@ m2mdas、私は実際には疑問に思っていた..あなたはどのようにPOSTデータからエンティティオブジェクトを作成しますか?つまり、すべてのパラメータを個別に抽出したり、セッターを使用したりすることなく、簡単に行うことができますか? – Mick

関連する問題