私はfosrestbundleを使ってパッチメソッドを実装しています。私は適切なパッチメソッドを作成したいと思います。リクエストオブジェクトからフォームへのdiff変更のみを適用する方法
私はcontrolerを作成しましたが、引数Entityを取るpatchActionがあります。私が書いたParamConverter経由でEntityが作成されます。エンティティはEntityTypeに渡され、ここに問題があります。私は変更されたフィールドだけを更新したいと思います。フォームにEntityを渡すと、nullsを要求から来るオブジェクトに設定します。エンティティは、ここ
- ユーザーが送信する流れだPOPO
ですPATCH要求へ/エンティティ/ {エンティティ} 12
- Paramのコンバータは、データ用のDBを求め、適切なエンティティに12を変換/エンティティ/さんが言わせ
- EntityFormTypeは、引数としてEntityをとり、要求からエンティティにデータを設定します。
- エンティティは、それがフォーム上でヌルであるフィールドにNULLセットオブジェクト全体エンティティを取り後の問題は、そのフォームであるDB
に格納されています。私はそれがこれらの値を取って、それを例えばデフォルトとして設定するのが好きです。
doctrine ORMは使用できません。
コード:
/**
* @ParamConverter("Entity", class="Entity")
*/
public function patchAction(Entity $entity, Request $request)
{
var_dump($entity); // object mapped from DB
$form = $this->createForm(new EntityType(), $entity);
$form->handleRequest($request);
$form->submit($request);
var_dump($entity);exit; //here I get only values that i passed through patch method, rest of them is set to null
}
私は、フォームのイベントを考えるか、差分法のようなものを作成しますが、おそらくよりよい解決策はありましたか?
おかげパヴェル:
どのように偽のSymfonyで
PATCH
方法。 Dzięki! – Robert