2012-10-20 94 views
0

我有員工和計劃之間的許多關係。 編輯員工時,我設法獲取當前時間表並填充表單。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-不好。)

任何幫助極大的讚賞。

非常感謝!

+0

'$ this-> request-> data'是如何構成的?你能打印這個數組嗎?如果結構正確,則可以使用saveAll。 – tyjkenn

+0

@tykenn,非常感謝。有效!。其實我試着先實現答案 - 還沒有看到你的評論 - 並更新了我的問題。然而,這工作。不過,我想知道我的foreignKeys問題是否對保存爲$ this-> Employee-> Schedule-> save($ this-> request-> data ...)有負面影響...再次感謝您。 –

回答

0

「通常,在使用hasOne,hasMany和belongsTo關聯時,它的所有關鍵字」 - CakePHP手冊「。

您的員工數組必須傳遞一個id,並且計劃數組需要有一個employee_id,以便蛋糕知道鏈接的模型是什麼。

+0

非常感謝嘗試發送密鑰,但仍然沒有運氣,我認爲它與我的兩張桌子上的外鍵不同,請問你會看到更新的問題嗎?增加一些表格的細節。 –

+0

如果沒有太大的麻煩,我仍然很想知道我的foreignKeys問題是否對保存爲$ this-> Employee-> Schedule-> save($ this-> request-> data ...)有負面影響...謝謝許多。 –