我无法使用不同的字段名称作为链接从二级包含的值中获取值。
Asistencia 型号:
var $belongsTo = array('Employee');
霍拉里奥型号:
var $belongsTo = array('Employee');
员工模型:
var $hasMany = array(
'Horario' => array(
'foreignKey' => 'employee_id',
'dependent' => true
),
'Asistencia' => array(
'foreignKey' => 'employee_id',
'dependent' => true
)
);
我将在我的示例记录中解释使用这些值:
Asistencia: employee_id = 3701
Employee : id = 3701
在我来自 Asistencia 的 find() 中,我可以通过切换 Employee primaryKey 来包含 Employee 就好了:
$this->Asistencia->Employee->primaryKey = 'id';
$this->paginate = array(
'contain' => array(
'Employee' => array(
'foreignKey' => 'employee_id',
//'fields' => array('id', h('emp_ape_pat'), h('emp_ape_mat'), h('name')),
'Horario' => array(
'foreignKey' => 'employee_id',
//'fields' => array('id' )
))
),
'conditions' => $conditions,
'order' => 'Asistencia.employee_id');
但是,我的 Horario 记录通过另一个字段链接到员工:emp_appserial
Employee : emp_appserial = 373
Horario : employee_id = 373
我的 Employee 数组如何包含 Horario 数组?(他们确实共享刚刚提到的价值)。
目前,Harario 包含使用 Asistencia.employee_id 和 Employee.id (3701) 上的值。(检查了 sql_dump 并试图通过
"WHERE `Horario`.`employee_id` = (3701)"
但要让 Employee 包含 Horario,它应该使用 Employee.emp_appserial 和 Horario.employee_id (373) 上的值。
这就是我得到的(底部的空数组)
array(
(int) 0 => array(
'Asistencia' => array(
'id' => '5',
'name' => null,
'employee_id' => '3701',
'as_date' => '2012-11-19',
),
'Employee' => array(
'id' => '3701',
'emp_appserial' => '373',
'emp_appstatus' => '8',
'AgentFullName' => '3701 PEREZ LOMELI JORGE LORENZO',
'FullNameNoId' => 'PEREZ LOMELI JORGE LORENZO',
'Horario' => array()
)))
请注意:
'employee_id' => '3701', (Asistencia)
和
'emp_appserial' => '373', (Employee)
我的 Horario 有 'employee_id' = 373。
我如何进行切换以使关系 Employee<->Horario 基于 emp_appserial?预先感谢您的任何帮助。