我无法从第二级获取包含使用不同字段名称作为链接的值。cakephp 2.1包含第二级别不同的字段名称
ASISTENCIA型号:
var $belongsTo = array('Employee');
Horario型号:
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()方法,我得到通过切换员工的PrimaryKey蛮好包含员工:
$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数组? (他们确实分享刚刚提到的价值)。
目前,Horario包含使用Asistencia.employee_id和Employee.id(3701)上的值。 (检查sql_dump,并试图通过
"WHERE `Horario`.`employee_id` = (3701)"
得到Horario但对于员工含有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
我怎么可能让开关,关系员工< - > Horario基于emp_appserial? 非常感谢您的帮助。
作为一种解决方法,我将使Horario.employee id与employee.id匹配,并使用新字段:Horario.emp_appserial作为此其他标识符(示例中的值为373)。然而,这种现场使用的变化需要进行重构 - 我只希望不会太多:-)尽管如此,这仍然会让事情变得简单。 –