2011-12-04 80 views
0

我想直接將數據保存到HABTM表offerings_studentsCakePHP的 - 直接保存到HABTM表

我這樣做,因爲在這個表中的字段,我需要在我的控制器手動設置。

設置'欠'字段後,My $ this-> data數組當前看起來像這樣。

Array 
(
[OfferingsStudent] => Array 
    (
     [OfferingsStudent] => Array 
      (
       [0] => Array 
        (
         [offering_id] => 35 
         [owing] => 209.00 
         [student_id] => 31 
        ) 

      ) 

    ) 

) 

該表格允許多項選擇,因此我必須能夠將多個記錄保存到HABTM表中。

我保存聲明:$this->Student->OfferingsStudent->save($this->data)

的問題是,這些記錄沒有被添加到表中。我必須能夠通過單個表單提交將多個記錄添加到表格中。

我必須補充說,記錄正在創建,但所有的字段最終有零。

編輯:

更改數組嘗試提交的解決方案,但仍然沒有運氣。

$這個 - >數據數組:

Array 
(
[OfferingStudent] => Array 
    (
     [0] => Array 
      (
       [offering_id] => 35 
       [owing] => 209.00 
       [student_id] => 31 
      ) 

    ) 

) 

回答

1

你還沒有問了一個問題。您的問題是您的保存嘗試不起作用?你想插入新記錄還是更新新記錄?

如果簡單地插入,試試這個來代替:

$data = array(
    [offering_id] => 35 
    [owing] => 209.00 
    [student_id] => 31 
); 

$this->OfferingsStudent->save($data); 

這將直接保存到表中。您無需爲此創建模型。

編輯

要添加多個:

$data = array(
    'OfferingStudent' => array(
     array(
      [offering_id] => 35 
      [owing] => 209.00 
      [student_id] => 31 
     ), 
     array(
      [offering_id] => 32 
      [owing] => 100 
      [student_id] => 30 
     ) 
    ) 
); 

$this->OfferingsStudent->saveAll($data); 
+0

我需要能夠通過單個表單提交添加多個記錄 – AlexBrand

+0

添加了一個編輯以保存多個條目。 –

+0

嘗試過,但不起作用。新增編輯。創建空記錄。 – AlexBrand

0

是酷航哈威爾生成編輯好,使白水的陣列,但代碼做動作必須是:

$this->OfferingsStudent->saveAll($data['OfferingStudent']); 

我有同樣的問題,並最終發現,經過多次。