2017-05-04 2 views
0

これは一般的な質問の一種です: 私はSymfonyでアプリケーションを開発しています。多くのフィールドがあり、他のグループのフィールド(コレクション) 。それは、基になるテーブルが 部分的に塗りつぶされたフォームを保存します(symfony環境で)

2深く相互に接続されている確立人間工学

  • を破る

    • ので、私はこれらのフォームを分割することはできません

      1))ユーザーはそうそこに、資格情報を持っていますセッションタイムアウトです 3)ユーザはすべてのフィールドを一度にすべて満たす情報を必ずしも持っているとは限りません

      Bu t クライアントは、このフォームを部分的にと記入し、いくつかの必須フィールドに「」と入力しなくても「今すぐ保存」機能を使用したいと考えています。

      長いテキストを含む非常に多くのフィールドがあるので、私はトリックをするためにクッキーを忘れることができます。 必須フィールドのいくつかは空にできるので、後で保存/編集を忘れることがあります。

      この問題の解決策はありませんでした。

      • 私は部分的に満たされたデータが保存されるなくなってすべての制約を有する第2のデータベースを持っているように言われましたが、私は、並列に2つのデータベースを管理し、それらをどのように同期するという考え方が好きではありません。
      • 私は、後で再注入するためにすべてのデータをjson/text形式で保存すると思いますが、これは私の考えるパフォーマンスの点では高価です。

      どのような戦略に従うことができますか?誰にもこの種の問題がありましたか? ありがとう

  • 答えて

    1

    すべての必須フィールドも受け入れることができるフォームにはDTOを使用します。ユーザーが「今すぐ保存」を押すと、何も実行されません。彼らが "保存"を押すと、あなたはDTOに対して妥当性検査を行い、すべてが良ければ、すべてのデータを "本当の"オブジェクトに入れて保存します。

    私はコードを提供することはできませんが、それは明らかです。

    +0

    ありがとうございました。私はそのようなもの(私はちょうど名前を見たことがある)を使用したことがなく、それを実装するための手がかりがありません。しかし、私はいくつかの検索を行います。ありがとう – Overdose

    +0

    "今すぐ保存"で、DTOをデータベースに保存します。 – Veve

    +1

    @Veve:はい、DTOはこの場合「無効」状態を持つことができます – DonCallisto

    関連する問題