我無法從第二級獲取包含使用不同字段名稱作爲鏈接的值。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)。然而,這種現場使用的變化需要進行重構 - 我只希望不會太多:-)儘管如此,這仍然會讓事情變得簡單。 –