1

シナリオは次のとおりです (非常に一般的なものです)。

  • チーム登録フォーム。
  • チームには複数のメンバーを含めることができるため、ユーザーは複数のメンバーを追加できます。
  • 少なくとも 1 つのメンバーを挿入する必要があります。

ユーザーは次のことを許可されている必要があります。

  • A) チームの詳細 (名前、ロゴなど) を入力します。
  • B) 一部のフィールドが正しくない場合にインラインで通知される。
  • C) チームを挿入するか、公開して公開するかを選択し、各選択肢に関連する検証ルールを確認します。
  • D) 別のモデルに関連して入力するフォーム フィールドをさらに表示するメンバーを追加します ([メンバーを追加] ボタンを使用)。(ユーザーはこれらのフィールドを削除することもできます);

以下の手順を踏むことを考えていますが、その前に、私よりも経験豊富な方に見てもらいたいと思います。

上記の手順を検証し、重要な不足点の可能性を指摘していただけますか?

必要がある:

のために)

  • を使用してフォームをレンダリングし CActiveFormます。

B)の場合

  • に設定enableClientValidationする必要がありtrueます。
  • render both models1 つのフォームで行う必要があります。

C) の場合

  • 検証モデルを作成しますscenarios
  • チェックしたときにシナリオを挿入または公開に変更するチェックボックスを作成します
    • Ajax form validationenable同様にする必要があります。

D)の場合

  • クリックすると、追加のフィールドセットを表示/非表示にする必要があります。
  • tabular inputメンバーのために収集する必要があります。
  • renderPartial を使用する必要があります

Yii を使用してこれをコーディングする前に、見ておくべき重要なものがありませんか? 別の手順を使用しますか? もしそうなら、共有してもらえますか?

4

1 に答える 1

3

Yii フレームワークの可能性を最大限に発揮させたい場合は、CFormModel を拡張して、統合したいさまざまなモデルを 1 つのフォームに含めることをお勧めします。

なんで?使用したい CActiveForm クラスは単一のモデルで動作すると考えられているためです。それ以外の場合は、モデルごとに 1 つずつ、複数のフォームを含め、ユーザーが作成アクションをコミットしたときに (Javascript を使用して) 一度にすべてを送信する方法を見つけ、それらをサーバー側で接続する必要があります。

もう 1 つの簡単な方法は、プロセスを分割して、ユーザーが最初に CActiveForm を使用してチーム モデルを使用してチームを作成できるようにし、チームが作成されたら、ユーザーを にリダイレクトするなどしteam/view/1て、メンバー データ、ここでも CActiveForm で単一のモデルを使用します。また、すべてのチームに少なくとも 1 人のメンバーが存在することを保証したい場合は、Team モデル (Team.leader_member など) でそれを保持します。

お役に立てば幸いです。乾杯。

于 2012-09-15T11:39:01.823 に答える