gpt4 book ai didi

php - Cake 3.0如何保存belongsToMany数据?

转载 作者:行者123 更新时间:2023-12-04 00:36:43 24 4
gpt4 key购买 nike

我是 cakephp 的新手。 http://book.cakephp.org/3.0/en/orm/associations.html#belongstomany-associations 处的文档和 http://book.cakephp.org/3.0/en/orm/saving-data.html#saving-with-associations对于像我这样的初学者来说似乎太简短或太高级了。

据我所知,我做了以下事情。

//Table Baskets belongsToMany Apples
//At BasketsTable.php in initialize()
$this->belongsToMany('Apples',[
'joinTable' => 'apples_baskets'
]);

MySQL 中的连接表apples_baskets:

+---+---------+----------+
|id |apple_id |basket_id |
--------------------------
| | | |
--------------------------

我已将发布请求数据显示在 Controller 中:

Array
(
[id] => 1
[xyz] => blahblah
[apples] => Array
(
[_ids] => Array
(
[0] => 1
)

)

[amount] => 15000
)

现在,当我执行save 时,只有 Baskets 表得到更新,join 表保持不变,并且不会抛出任何错误。

我知道我肯定遗漏了一些东西,但无法弄清楚。请帮忙!!!

最佳答案

尝试检查您的 Baskets 实体类是否使其 apples 属性 _accessible:

<?php
namespace app\Model\Entity;

use Cake\ORM\Entity;

class Basket extends Entity {
public $_accessible = [
'apples', // <-- make sure this is present
];
}

在使用这些新的实体类尝试加载数据时(使用 Table::newEntity()Table::patchEntity()),一个很常见的陷阱),但由于批量分配保护,其中一些数据实际上并未保存到实体中。

引用:http://book.cakephp.org/3.0/en/orm/entities.html#mass-assignment

关于php - Cake 3.0如何保存belongsToMany数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32105778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com