質問のタイトルを許してください。一貫した何かを書くことを試みるのに20分を費やした(成功すれば疑わしい)。Cakephp:コントローラーアクションでhasMany/belongsTo関係を維持する
とにかく、一例としてブログを使用して、私たちのモデルは次のようになります。
ポストhasManyのコメント コメントbelongsToのポスト
のは、私は新しいコメントを追加したいとしましょう:コメントを保存するとき、I saveを呼び出す前に、データ配列内の親Post(Post.id)に外部キーを含める必要があります。
私は、ユーザーにコンテキストで関係を維持したいので - 私は彼らがして、コメントを関連付けるために選択フィールドからのポストを選択する必要がありますする必要はありません - ここで私が見る2つのオプションがあります:
1)コメントのフォームを投稿のビューに配置します。
2)投稿IDを引数として(GET経由で)Comment.addアクションに渡します(または、セッションに書き込み/読み込みを行います)。保存し、 親Post.viewにリダイレクトします。
オプション1はブログには適していますが、ユーザーのプロフィールには適していません。ユーザーのプロフィールにはあまりにも長すぎる形式の があります。
オプション2を使用していますが、特定のポスト固有の表示/リダイレクト条件を Comments.addアクションに書き込む必要があります。私が読んだことから、私は はコントローラ とモデルの間に1対1の関係を維持しようとしているはずです。
#2はWeb MVCのベストプラクティスとして受け入れられますか?または私は見落としている別のオプションがありますか?