gpt4 book ai didi

Cakephp - 将唯一设置为 true 时不会删除 HABTM 记录

转载 作者:行者123 更新时间:2023-12-04 18:21:51 24 4
gpt4 key购买 nike

CakePHP 的默认设置为 true,我已经对其进行了编码以确保也是如此。
所以我有以下数据库结构:
项目 HABTM 操作,唯一设置为 true。

情况如下:

如果 ATLEAST 1 条记录保持“事件”状态,当我删除 1 条或多条记录时,保存时删除工作正常

当我删除所有记录(或 1 条记录,如果这是唯一的一条)时,删除在保存时不起作用。它只是以这种方式保存所有现有记录。

在保存之前,我已经确定 debug($this->request->data) 不包含任何操作。

最佳答案

从您帖子评论中的讨论来看,我仍然感到困惑,但我了解您正在尝试:
以类似于以下的格式保存 POST:
大批(
'项目' => 数组(
'id' => '3'
)
和:

 $this->Item->SaveAll($this->request->data);

您的 POST 应包含一个“操作”键:
array(
'Item' => array(
'id' => '3'
),
'Action' => array(
'Action' => array()
)

当“Action”键被设置时,Cake 知道它必须“超越”这个关系并且它很神奇。
然后它会删除。

我刚刚在我正在开发的应用程序上对此进行了测试,实际上发现它是一个错误。 :D 问题
是对于特定的 HATBM 关系,我必须使用手动生成的表格,因此在发布时没有包含任何内容,关系键没有设置,记录也没有被删除。我想表单助手处理这个。

如果您有类似的问题,您可以通过两种不同的方式进行管理:
  • 使用 JavaScript 放置隐藏输入
  • 在 Controller 中检查是否设置了“操作”键,如果没有添加它(作为一个空数组):

    $this->request->data['Action']['Action'] = array();

    这可能有点侵入性,但它会完成这项工作。
  • 关于Cakephp - 将唯一设置为 true 时不会删除 HABTM 记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10484778/

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