我有員工和計劃之間的許多關係。 編輯員工時,我設法獲取當前時間表並填充表單。cakephp保存相關屬於
保存時,我用:
if ($this->Employee->save($this->request->data)) {
$this->Employee->Schedule->save($this->request->data, $validate = false);
....
}
員工數據保存很好,但日程記錄保持不變。
我實際上提供了id作爲數組的一部分。在我的控制器上,debug($ this-> request-> data)顯示:
array(
'Employee' => array(
'emp_position' => '1',
'name' => 'the name',
'emp_gender' => '1',
'emp_father' => '',
'emp_mother' => '',
'emp_dob' => 'October 13, 1964',
...
..
),
'Schedule' => array(
(int) 0 => array(
'id' => '7',
'ho_lu2' => '10:00',
'ho_ma2' => '01:00',
'ho_mi2' => '00:00',
'ho_ju2' => '00:00',
'ho_vi2' => '00:00',
'ho_do4' => '00:00'
)
)
)
。
***************** Update ************
我認爲這與外鍵是我的兩個表不同做
我的員工表:
CREATE TABLE IF NOT EXISTS `employees` (
`id` int(5) DEFAULT NULL,
`emp_appserial` int(5) unsigned NOT NULL AUTO_INCREMENT,
...
(請注意,在僱員表,emp_appserial是我PK autoincr和EMPLOYEE_ID可以爲一些記錄爲空)
我的日程表:
CREATE TABLE IF NOT EXISTS `schedules` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`employee_id` int(5) unsigned NOT NULL,
...
自從我鏈接使用不同的領域,這些表中,我使用外鍵:
在我的模型,我聯繫: 員工型號:
var $hasMany = array(
'Schedule' => array(
'foreignKey' => 'employee_id', //(field on Schedule)
'dependent' => true
)
);
public $primaryKey = 'emp_appserial'
調度模型:
var $belongsTo = array('Employee',
'Employee' => array(
'foreignKey' => 'emp_appserial' //(field on Employee)
)
);
我發佈的數據現在包括用於Schedule的employee_id和員工的emp_appserial
array(
'Employee' => array(
'id' => null,
'emp_appserial' => '119'
...
),
'Schedule' => array(
(int) 0 => array(
'id' => '6',
'name' => 'segundo horario',
'emp_appserial' => '119',
'employee_id' => '119'
)
)
)
(試圖追加到安排兩個ID和序列試試我luck-不好。)
任何幫助極大的讚賞。
非常感謝!
'$ this-> request-> data'是如何構成的?你能打印這個數組嗎?如果結構正確,則可以使用saveAll。 – tyjkenn
@tykenn,非常感謝。有效!。其實我試着先實現答案 - 還沒有看到你的評論 - 並更新了我的問題。然而,這工作。不過,我想知道我的foreignKeys問題是否對保存爲$ this-> Employee-> Schedule-> save($ this-> request-> data ...)有負面影響...再次感謝您。 –