繁体   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