有没有办法让 saveAll() 删除无关的对象?

2024-06-25

我的主机对象有许多与其关联的选项对象。在编辑表单中,用户可以选择(取消)选择选项并保存新的关联集。这是通过对发布的数据使用 saveAll() 来实现的。结果是

  • 主机(主)对象已更新,
  • 更新先前关联和新关联中包含的选项(关联)对象,并且
  • 将创建未包含在先前关联中但包含在新关联中的选项对象。

但没有发生的是

  • 先前关联中包含但新关联中未包含的选项对象将被删除。

问题:saveAll() 也可以做到这一点吗?数据结构必须是什么样子才能实现这种效果?

相关信息:

我处理编辑表单的代码实际上更复杂(因此我没有在这里引用它),但它产生了书中描述的数据结构:

( [Host] => ( ... host object fields ... ),
  [Option] => ( [0] => ( ... first option object fields ... ),
                ...
                [n] => ( ... nth option object fields ... )
              )
)

现在,如果原始主机有一个未包含在 0..n 数组中的关联选项,则 saveAll() 将不会检测到这一点,也不会删除该关联对象。

不确定这是否相关,但我正在使用 CakePHP 1.3 。


这并不是一个优雅的解决方案,但对我有用。

if ($this->Main->saveAll($this->data))
{
    $this->Main->query(sprintf(
        'DELETE '
        . 'FROM extraneous '
        . 'WHERE main_id = \'%s\' AND modified < (SELECT modified FROM main WHERE id = \'%1$s\')'
        , mysql_real_escape_string($this->Main->id)
    ));
}

请注意,您的表需要有一个modified http://book.cakephp.org/view/69/created-and-modified field.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法让 saveAll() 删除无关的对象? 的相关文章

  • Symfony 3 - 你请求了一个不存在的服务,这让我发疯

    所以 这不是我第一次创建服务 但我只是无法解决错误 您请求了一个不存在的服务 global settings 我为确保服务正确设置而采取的步骤 My AppBundleExtension php namespace AppBundle De
  • 我的 zend 应用程序无法在 YouTube 上上传文件

    我正在使用以下代码在 YouTube 上上传小型和大型视频 该代码在本地主机上正常工作 但是当我在服务器上运行它并上传相同的视频时 它会上传所有小文件 但不会上传大文件 上传完成后 YouTube 对于大尺寸文件显示以下错误 失败 无法转换
  • 为什么php邮件功能在xampp中不起作用

    我在使用 xampp 时遇到问题 我想检查邮件表格 但看不到任何结果 我像本网站中的教程一样配置 Mercury 32 http system66 blogspot com 2010 01 how to send mail from loc
  • 使用 laravel 拒绝 .composer/config 文件权限

    我在 ubuntu virtualbox 上有一个 laravel 项目 我曾经跑步composer update一切都很好 我不知道有什么变化可能会影响这一点 但现在当我跑步时composer update I get file get
  • IOS 向特定用户推送通知?

    是否可以向特定设备发送 iOS 推送通知 我构建了一个论坛类型的应用程序 用户可以创建问题 其他人可以回答它 我需要向提出问题的特定用户发送 iOS 推送通知 通知他们问题已得到解答 这可以通过 PHP 或其他方法来完成吗 是的 您绝对可以
  • 销毁Session但保留flashdata

    我在用坦克验证 http www konyukhov com soft tank auth 用于我的 CI 1 7 3 应用程序中的用户管理 一切工作正常 但我正在尝试设置flash message当用户注销时显示 问题是 this gt
  • 在 Symfony2 (Doctrine) 和 MySQL 中启用微秒

    我有一个具有一列 日期时间 类型的实体来存储时间戳 ORM Column type datetime protected timestamp 我有 MySQL 5 5 40 我发现它不存储微秒 所以我切换到 5 6 21 并导入了所有表格和
  • 防止我的 PHP 网络爬虫停止运行

    我正在使用 PHPCrawl 类并添加了一些 DOMDocument 和 DOMXpath 代码来从网页中获取特定数据 但是脚本在接近爬行整个网站之前就停止了 我已将 set time limit 设置为 100000000 因此这不应该成
  • Monolog - 仅记录特定级别的错误

    我在普通 PHP 应用程序中使用 Monolog 我只想记录特定级别的错误 INFO 和不高于 因为我还有其他处理程序 这是我的代码
  • PHP 中的延迟加载类方法

    我有一堂课 里面有一些相当大的方法 在它的基本和最常见的状态下 大多数功能并不是必需的 所以我想知道是否有一种方法可以延迟加载类的一部分 这些方法需要能够访问私有 受保护的成员 因此如果这些方法是类的本机方法 那将是理想的选择 但是在寻找其
  • 数据库记录的多级菜单

    我需要一些有关 PHP 的帮助 我有一个工作正常的多级 css 菜单 但现在我想根据数据库中的记录生成 菜单代码 div ul class dropdown li a href Link 1 a li li a href Link 2 a
  • 将我的 JSON 字符串格式化为 PHP 中的
      有序列表

    我正在为一个宠物项目开发一个简单的 CMS 我目前有一个 JSON 字符串 其中包含菜单结构的页面 ID 和父页面 ID 的列表 我现在想将此字符串转换为嵌套或分层列表 有序列表 我尝试过循环查找 但似乎最终得到了过于复杂的子类范围 我正在
  • 在 PHP 中使用重命名函数时出错

    尽管文件仍然被移动到正确的目录中 但我不断收到此错误 有人知道我为什么会收到此错误吗 Warning rename Images uploaded 1162504 56863010 jpg Images uploaded Portraits
  • file_get_contents:即使出现错误也能获得完整响应

    是否有可能使file get contents即使发生错误也显示实际响应 否则很难调试 例如 假设您有以下代码 url https api twitter com oauth request token data array options
  • Outlook 2007 接收 html 邮件作为带有标头的源,其他 MUA 工作正常。为什么?

    我有几个简单的表单 可以发送纯 html 电子邮件 大多数客户端 Gmail Lotus Notes 8 hotmail live windows live mail outlookexpress 都能正常接收电子邮件 但 Outlook
  • 如何使用 Amazon S3 SDK 更新元数据

    我正在使用 Amazon 的 AWS SDK 的 PHP 版本 我有一堆带有Expires标头 我想删除该标头并添加一个Cache control标题代替 这更新对象 http docs amazonwebservices com AWSS
  • 如何摆脱 WordPress function.php 中的“SiteLock-PHP-FILEHACKER-of.UNOFFICIAL”

  • 是否可以倒回 PDO 结果?

    我正在尝试为 PDO 语句的结果编写一个迭代器 但找不到任何回退到第一行的方法 我想避免调用 fetchAll 和存储所有结果数据的开销 first loop works fine foreach statement as result d
  • 特殊字符和 URL 重写

    我目前正在开发一个应用程序 该应用程序从暴雪社区 API 中提取 JSON 数据并使用 PHP 对其进行解析 一切正常 直到我遇到一个名字中有特殊字符的角色 为了提取角色数据 我需要知道他们的角色名称和他们所在的领域 我将名称和领域通过 U
  • 在 Woocommerce 中设置购物车商品价格后重新计算总计

    通过 set price 方法更改产品价格后 如何更改小计价格 现在在review order php中按旧价格计算总成本 cart php foreach WC gt cart gt get cart as cart item key g

随机推荐

  • 如何在 Eclipse PDT 中重新格式化多行注释?

    In Eclipse PDT Ctrl Shift F重新格式化代码 但是 它根本不修改评论 有没有办法将参差不齐的多行注释重新格式化为每行 80 个字符 或其他 即转换 We took a breezy excursion and gat
  • Shopware 6 在计划任务中获取上下文

    我只是想知道如何获取计划任务中的上下文 有静态方法 Context createDefaultContext 但它被标记为内部 我知道不应该创建上下文 而应该从更高的服务传递到您的服务 但这在计划任务中似乎不可能 我想我在 GitHub 问
  • 数据记录的类约束

    我有一个data type data BuildException a KillBuild JobID a Stage FailBuild JobID a Stage CancelBuild JobID a Stage StopBuild
  • Android SearchView 上是否有监听器来通知 SearchView 是否已展开并准备好接受输入?

    当用户未输入任何内容时 我想在 SearchView 中显示一些默认建议 我正在使用矩阵光标手动设置自定义建议适配器 我尝试在 onFocusChange 和 onClickListner 中设置适配器 但建议隐藏在键盘后面 显然建议加载时
  • 移动除一个文件之外的所有文件

    如何移动除一个文件之外的所有文件 我正在寻找类似的东西 mv Linux Old Tux png Linux New 我将旧的东西移动到新的东西文件夹中 除了Tux png 符号代表否定 有一些工具可以完成这项工作吗 如果您使用 bash
  • 内存泄漏 - 每个请求命中容器中运行的 Flask API 后

    我有一个 Flask 应用程序在 EC2 上的容器中运行 启动容器时 docker 统计数据显示内存使用量接近 48MB 进行第一次 API 调用 从 s3 读取 2GB 文件 后 使用量上升至 5 72GB 即使 api 调用完成后 使用
  • 使用空子文档集合保存 Mongoose 文档会导致重复键错误

    我有两个猫鼬模式 var productSchema new Schema name type String required true unique true var categorySchema new Schema products
  • 如何使用org.apache.commons包?

    在各种网络示例中 我看到了导入 例如 import org apache commons net ftp FTPClient 我不明白如何使用这些 而且 apache 网站也相当不清楚 我该如何使用这些类 我希望我需要下载一些东西 但如果有
  • 更改 iterm2 中的用户名、主机名和路径颜色

    如何更改 iTerm2 中的用户名 主机名和路径颜色 我正在使用内置的 Solarized 配色方案 In Ubuntu the same built in colorscheme is highlighted like In iTerm2
  • 不同智能手机上的视频观看行为(具有不同的怯场)

    我使用 videoview 或 MediaPlayer 在同一活动的多个视频视图中播放 rtsp 流时遇到兼容性问题 我就这个问题提出了另一个问题here https stackoverflow com questions 21111511
  • 当远程(Http)文件更改时如何执行操作?

    我想创建一个脚本 用于检查 URL 并在远程文件的 Last Modified 标头更改时执行操作 下载 解压缩 我考虑过使用curl 获取标头 但随后我必须将其存储在每个文件的某个位置并执行日期比较 有没有人对使用 大部分 标准 UNIX
  • 调用 logger.setLevel 时使用变量

    有谁知道是否有办法在Python Logging 模块的setlevel 函数中使用变量 目前我正在使用这个 Log logging getLogger myLogger Log setLevel logging DEBUG 但我想要这个
  • 在Android上动态添加imageView

    我想显示 HTML 中的图像 并且使用以下命令获取图像 url 源Jsoup 但是 一个问题是每个帖子都有不同数量的图片 所以 我无法修复 xml 布局中 ImageView 的数量 经过研究 我知道我可以动态创建 ImageView 所以
  • 为什么 event.bubbles 对于“focusin”和“focusout”为假?

    几分钟前 我回答了这个问题 jQuery 中 focusin focusout 与 focus blur 有什么区别 https stackoverflow com q 10584042 601179 答案是 简短回答 focusin气泡
  • 为什么 ggplot2 图例不结合手动填充和缩放值?

    预期行为 如果我用 ggplot2 创建一个绘图并使用单独的形状和填充比例来描绘数据 我希望图例会在 白色 填充点 看起来是空心的 和 黑色 填充点 看起来不空洞的 在下面的示例代码中 Windows 的图例项应为白色空心点 Linux 的
  • Sharepoint 2013 网站 NTLM 身份验证 javascript doPostBack 在 Safari 和 iPad 中不起作用

    我有一个非常有趣的问题 我们有一个使用 sharepoint 2013 创建的站点 我们使用 Windows NTLM 身份验证 在包含自定义讨论列表WebPart 的页面中 我们有一个过滤器按钮 它使用 javascript doPost
  • 为什么 Javascript 不支持lookbehind断言?

    最近我意识到 因有些尴尬 正则表达式lookbehind assertions were not可能在Javascript 这种看似常见的断言不存在的 事实 原因是什么 我意识到也许有其他方法可以实现同样的目标 https stackove
  • 将字符串转换为可绘制对象

    我想发出一个通知 在状态栏中显示一个图标 到目前为止一切顺利 但实际上我希望这个图标是一个 3 个字符的字符串 所以我的问题是 有没有办法将我的字符串转换为Drawable将其显示为状态栏中的图标 编辑 我最近发现了一个具有类似功能的应用程
  • 生成所有尺寸的android图标[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想知道 是否有任何工具可以生成所有尺寸的 android 图标 如 hdpi lpdi xxhdpi
  • 有没有办法让 saveAll() 删除无关的对象?

    我的主机对象有许多与其关联的选项对象 在编辑表单中 用户可以选择 取消 选择选项并保存新的关联集 这是通过对发布的数据使用 saveAll 来实现的 结果是 主机 主 对象已更新 更新先前关联和新关联中包含的选项 关联 对象 并且 将创建未