0

私は非常に新しくYii framework、これまでのところ、それを使って多くのことを楽しんでいます。私は自分で最初のプロジェクトに取り組んでおり、次の問題に悩まされています。

と の 2 つのモデルがStudentありTeacherます。それらは外部キーとは関係ありませんが、学生テーブルにはテーブルteacher_idに属するフィールドがありTeacherます。(それらをどのように関連付けるかはまだはっきりしていませんが、それは私が後で心配しなければならない別の話です).

フォームを使用してビューで生徒を更新するときに、教師のフォームも組み込みましたが (氏名、年齢など)、生徒フォームの一部であるため、生徒モデルで設定された検証ルールの恩恵を受けません。教師情報を保存すると (同じ POST リクエストで、生徒フィールドを保存する前に)、必要なフィールドが欠落している場合は保存されないため、検証が機能しているように見えますが、生徒フォームには戻りません。 、独自の必須フィールドの場合と同様の検証エラー。これがあまり混乱しないことを願っていますが、どのように説明すればよいかわかりません。

どんなアイデアでも大歓迎です!

4

3 に答える 3

1

モデル ファイルでこの形式の関係を宣言できます。関係を宣言するための外部キーは必要ありませんが、外部キーがあるとクエリの実行速度が速くなります ...

'VarName'=>array('RelationType', 'ClassName', 'ForeignKey', ...additional options)

あなたのケースの例は、..

public function relations() {   
    return array(
        'student' => array(self::BELONGS_TO, 'teacher', 'teacher_id'),
    );
}

同じフォームで複数のモデルを使用するクエリに関しては、同じフォームで複数の table_models を使用していることを理解していることから、正確に何が起こっているのかがあなたの説明からはあまり明確ではありませんが、これは非常に複雑な可能性があります。

単一のフォームを使用して複数のテーブル エントリを処理するための別のフォーム モデルを作成することをお勧めします

于 2013-07-27T06:05:57.240 に答える