私は Play フレームワークを使用しており、コントローラー アクションでフォームを使用してモデルを更新する一般的なユース ケースがあります。しかし、モデルのすべてのプロパティを含むフォームがある場合にのみ機能するため、その背後にある概念を理解するのにいくつか問題があります。ユーザー モデルのパスワードのみを編集するなど、部分的なフォームしかない場合、このメソッドはモデルの他のプロパティを null に設定するため、モデルを破棄します。その問題に対する「公式の」解決策はありますか?Play が既存のプロパティだけを更新する方法はありますか?
public static Result update(Long id) {
Model model = Model.findById(id);
Form<Model> filledForm = modelForm.bindFromRequest();
if (filledForm.hasErrors()) {
return badRequest(edit.render(filledForm));
} else {
model.update();
flash("message", "Created new Model!");
return ok(index.render());
}
}
おそらく解決策は、文字列や文字列のマップなどの追加のパラメーターを使用して bindFormRequest() メソッドを呼び出すことができるという事実にありますか? しかし、私はその目的を見つけることができません。それについての洞察も素晴らしいでしょう。どうもありがとう!