2

私は古い CFML 開発者で、CF on Wheels と MVC プログラミング全般は初めてです。私はすぐにそれを取り上げていますが、私には明らかではないことの1つは、オプションで複数のdbテーブルレコード(モデル)を更新するフォームを提供する方法です。特にユーザー情報とユーザー プロファイル情報用のタブ付きフォームを設定したいと思います。前者は必須で、後者は必須ではありません。このデータは、2 つの異なる 1 対 1 のテーブルに格納されます。2 つの「新規」ビューまたは「編集」ビューを呼び出し、2 つの「作成」または「更新」プロシージャを実行して、2 つの異なるテーブルに影響を与えるために必要な設定は何ですか。それとも、私はこれについてすべて間違っていると考えていますか。

更新: 私がやろうとしていることに関する情報を追加します。簡単にするために、2 つのタブと 2 つのテーブルに固執しますが、この例では少なくとも 3 つを見ています。

したがって、Users テーブルと UserProfiles テーブルがあり、1 対 1 で関連付けられた User.cfc と UserProfile.cfc という名前のモデルがあり、UserProfile は User に依存しています。かなり標準的なもの。それぞれにコントローラーがあります: Users.cfc と UserProfiles.cfc で、それぞれにアクションが含まれています。追加、編集、作成、更新、明らかなこと (表示フォームの追加と編集) を行います。それぞれの追加/編集フォーム フィールドを表示するパーシャルがあるので、それは既に準備されています。ここで、両方のテーブルを同時に更新できる効果的な単一の追加/編集フォームを作成したいと考えています。タブはあまり重要ではありません。事実上、すべてを 1 ページにまとめることができます。

だから概念的に私は次のようなことをしています:

#startFormTag(action=???)#
#includePartial("form_user_add-edit")#
#includePartial("form_userprofile_add-edit")#
<button type="submit" class="btn">#operation#</button>
#endFormTag()#

2 つの異なるコントローラーの作成アクションと更新アクションを基本的に組み合わせた別のコントローラー アクションを作成する必要がありますか?

喜んで熱心なCFWheelsの初心者からの前もって感謝します...

ブライアン

4

2 に答える 2

1

すべてのデータがhasManyまたはhasOne関連付けによって関連付けられている場合は、ネストされたプロパティを確認することをお勧めします。

http://cfwheels.org/docs/1-1/chapter/nested-properties

ただし、初心者の場合は、もっと簡単な方法が見つかるまで、これを控えることをお勧めします。

于 2012-06-14T13:14:31.013 に答える
0

おそらくhasOneを使用して関連付けられた、これら 2 つのテーブルを表す 2 つのモデルについて話していると思います。モデルを使用すると、データを検証できます。これにより、コントローラーがはるかに簡単になります。このようにして、2 つのタブの下に 2 つのフォームを作成し、レコードの主キーを隠しフィールドとして保持できます。コントローラーは検証を実行し、フォームを再表示できます (パーシャルが役立つ場合があります)...ちょっと待ってください

この回答は、あなたの質問と同様にかなり一般的であることを理解しています。先に進んで何かを試してみることをお勧めします。それがどのように機能するかを確認してください。

その後、コード サンプルで質問を更新し、特定の問題があるかどうかを尋ねます。たとえば、CFWheels での検証とエラーの表示は少し難しいかもしれません。

于 2012-06-13T19:49:37.630 に答える