この質問が他の場所で回答されている場合は、事前にお詫び申し上げます。既存の回答を高低で検索しましたが、空になりました。おそらく私は間違ったキーワードで探しています。
私には 3 つのモデルがあり、そのうちの 2 つ (学生と家庭教師) は、他の両方のモデルと$hasMany
関係がある共通のモデル (予定) と関係があります。$belongsTo
正確なモデルは以下のとおりです...
学生は多くの予定を持っています...
class Student extends AppModel {
var $hasMany = array (
'Appointment' => array (
'foreignKey' => 'student_id'
)
);
家庭教師には多くの予定があります...
class Tutor extends AppModel {
var $hasMany = array (
'Appointment' => array (
"foreignKey" => 'tutor_id'
)
);
予定は生徒とチューターに属します...
class Appointment extends AppModel {
var $belongsTo = array (
'Student' => array (
'foreignKey' => 'student_id'
),
'Tutor' => array (
'foreignKey' => 'tutor_id'
)
);
学生の記録 (例: 'app/student/view/4') を見るとき、次の予定の日付とその予定の家庭教師の名前をリストできるようにする必要があります。そのため、Student モデルを見ながら、Tutor モデル (名前) からデータにアクセスする必要があります。現時点では$this->Student->query()
、関連するチューター レコードを取得することしかできませんでしたが、これにより、生徒の情報が結果の配列で繰り返されます。
$hasMany
との関係はすべて$belongsTo
正常に機能します。CakePHP には、関連情報を取得するために欠落している組み込み関数がありますか、それともどこかで手書きで行う必要がありますか?