0

私はVisitテーブルとConsultテーブルの両方がテーブルPatientを介して関連付けられています。つまり、visitテーブルとConsultテーブルには外部キーpatient_idがあります。この2つのテーブル(VisitとConsult)を1回の編集アクションで編集する必要があります。つまり、編集ビューでは両方のテーブルのデータが表示されます。どのモデルを使用する必要がありますか?ありがとう.........

4

1 に答える 1

0

3つのテーブルには別々のモデルがあり、CakePHPAssociationsを介して関連付けられている必要があります。

あなたの場合(私が理解しているように)、あなたは以下の関連を持っています:

Patient hasMany Visit     (via Visit.patient_id)
Patient hasMany Consult   (via Consult.patient_id)
Visit belongsTo Patient   (via Visit.patient_id)
Consult belongsTo Patient (via Consult.patient_id)

3つのモデル(Patiend、Visit、Consult)の適切な場所でこれらを定義し、CakePHPの規則に従っている場合、たとえば、Patients Controllerのedit()アクションでこのすべてのデータを表示するには、次のようにします。

public function edit($id = null) {
    $this->Patient->id = $id;
    if ($this->Patient->exists()) {
        $patient = $this->Patient->find('first', array('conditions' => array('id' => $id)));
    }
}

これで、$patientにはPatientレコードと、VisitおよびConsultモデルからのすべての関連レコードが適切な配列構造で含まれます(もちろん、このIDを持つPatientが存在する場合)。

あなたの言うことから、CakePHPモデルの関連付けを理解しているかどうかはわかりません。リンクをチェックしてください。

お役に立てれば。

乾杯、ボリスラフ。

于 2012-05-03T09:37:33.783 に答える