私はこれらの関係を持っています:
出席は従業員に属します
スケジュールは従業員のものです
このfind()は、日付範囲内のすべての出席レコードを取得するために問題なく機能します。
$data = $this->Attendance->find('all', array(
'contain' => array(
'Employee' => array(
'Schedule' => array(
'conditions' => array('sche_status' => 1),
'order' => 'sche_valid DESC',
'limit' => 1
))
),
'conditions' => $conditions,
'order' => array('employee_id', 'att_date')
)
);
ただし、このスケジュール条件
'conditions' => array('sche_status' => 1),
「現在の」スケジュールを取得します。問題は、従業員が日付範囲に複数のスケジュールを持っている場合です。親の出席レコードに関連するスケジュールを取得するには、Attendance.att_dateも条件付けする必要があります。
試してみました
'conditions' => array('sche_status' => 1, 'ho_valid <=' => Attendance.att_date)
と
'conditions' => array('sche_status' => 1, 'ho_valid <=' => $this->Attendance.att_date)
contanスケジュール条件からAttendance.att_dateを参照するにはどうすればよいですか?それは可能ですか?私の現在のデータセットはかなりきれいで、find()は乾燥しているので、ここで混乱させたくありません。
どんな助けでも大歓迎です。