簡體   English   中英

Cakephp-直接保存到HABTM表

[英]Cakephp - Saving directly to HABTM table

我正在嘗試將數據直接保存到HABTM表offers_students

我這樣做是因為此表中有一個字段需要在控制器中手動設置。

設置“ owing”字段后,我的$ 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)

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

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

編輯:

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

$ this-> data數組:

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

    )

)

您還沒問過問題。 您嘗試保存的問題是否奏效? 您是要插入新記錄還是更新新記錄?

如果只是插入,請嘗試以下操作:

$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);

Scoot Harwell在Edit中生成的數組可以很好地保存saveAll,但是執行此操作的代碼必須為:

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

我有同樣的問題,經過很多時間終於找到了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM