Kohana のさまざまな関連テーブルからデータを取得する方法を見つけようとしています。
次のように定義されたファイルテーブルがあります。
class Model_File extends ORM {
protected $_belongs_to = array
(
'student' => array ('foreign_key' => 'student_id' )
);
}
次に、セッション テーブル:
class Model_Filesession extends ORM {
protected $_primary_key = 'id';
protected $_table_name = 'file_sessions';
protected $_belongs_to = array
(
'file' => array ('modele'=> 'file' , 'foreign_key' => 'file_id' ),
'subject' => array ('modele'=> 'subject' , 'foreign_key' => 'subject_id' ),
'place' => array ('modele'=> 'place' , 'foreign_key' => 'place_id' ),
'teacher' => array ('modele'=> 'teacher' , 'foreign_key' => 'teacher_id' )
);
}
したがって、ファイルセッションと学生の間に直接のリンクはありません...だから、ファイルセッションの結合に追加できません( ->with('student') )
現在、私はこれをやっています:
$fileSessions = ORM::factory('filesession')
->with('subject')
->with('teacher')
->with('place')
->with('file')
->where('payment_id','=',$payment_id)
->order_by('sessionDate','DESC')
->find_all();
このクエリを Student テーブルの JOIN に変更するにはどうすればよいですか?
言い換えれば...次を追加するだけです:
INNER JOIN students ON students.id = file.student_id
しかし、Kohana ORM を使用すると
編集(学生モデル追加)
class Model_Student extends ORM {
protected $_has_one = array(
'file' => array(
'model' => 'file',
'foreign_key' => 'student_id',
),
);
protected $_belongs_to = array
(
'level' => array ('foreign_key' => 'level_id' )
);
}