删除前的模型回调

2023-12-06

我试图在使用级联模型删除这些图像的容器时删除图像::delete

级联工作正常,但我无法在删除后回调模型以正常工作,因此我可以在删除时删除实际的图像文件。

function beforeDelete() {
    $containerId = $this->id;
    $numberOfImages = $this->RelatedImage->find('count', array('conditions' => array('RelatedImage.container_id' => 'containerId')));
    if ($numberOfImages > 0){   
        $relatedImages = $this->RelatedImage->find('all', array('conditions' => array('RelatedImage.container_id' => 'containerId')));
        foreach ($relatedImages as $image) {
            $myFile = WWW_ROOT . 'image' . $containerId . '_i' . $image['RelatedImage']['id']  . '.jpg';
            unlink($myFile);
            $myThumb = WWW_ROOT . 'img/' . $image['RelatedImage']['thumbnail'];
            unlink($myThumb);
        }
        return true;
    } else{
        return false;
    }
}

即使我知道表中有图像,if 语句每次都会失败。如果我能让 if 语句至少执行,我将在取消链接上添加进一步的验证。


我会这样做:

在beforeDelete中获取图像数据

function beforeDelete(){
  $relatedImages = $this->RelatedImage->find('all', array('conditions' => array('RelatedImage.container_id' => 'containerId')));
  $this->relatedImages = $relatedImages;
  $this->currentId = $this->id; //I am not sure if this is necessary
  return true;
}

然后按照奥斯卡的建议在 afterDelete() 中实际删除图像:

function afterDelete(){
  $relatedImages = $this->relatedImages;
  $containerId = $this->currentId; //probably this could be just $this->id;
  foreach ($relatedImages as $image) {
        $myFile = WWW_ROOT . 'image' . $containerId . '_i' . $image['RelatedImage']['id']  . '.jpg';
        unlink($myFile);
        $myThumb = WWW_ROOT . 'img/' . $image['RelatedImage']['thumbnail'];
        unlink($myThumb);
    }
}

这样你就可以保存,即使模型无法删除记录,只有在实际发生删除的情况下,你才会删除图像。

HTH

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

删除前的模型回调 的相关文章

  • 具有模型目录和AUTH_USER_MODEL

    I have myApp models profiles py代替myApp models py 对相关模型进行分组 你怎么设置AUTH USER MODEL在这种情况下 因为 auth 只接受 foo bar 模式 app label m
  • 同一数据库的多个实体框架

    我们可以在项目中为同一个数据库创建多个实体框架吗 我想为每个子系统创建实体框架 一些子系统具有共享表 这是可能的 您可以根据需要创建多个 EDMX 文件 但不建议这样做 因为 您不能查询不同模型中的多个表 定义边界将非常困难 因为大多数表都
  • 如何重写 JQuery 的 .show() 和 .hide() 以触发前后事件?

    我试图重写 JQuery show 和 hide 方法 以在使用以下代码调用它们之前和之后启动触发事件 document ready function dataBox bind afterShow function alert afterS
  • Laravel Eloquent ORM 返回 stdClass 而不是实际模型

    我正在做 mymodel MyModel where url domain gt first 这返回了一个 MyModel 对象 现在 不知何故 它返回了一个 stdClass 发生了什么 laravel 有更新吗 我改变了什么吗 Than
  • 将参数传递给 jquery 单击事件中的回调函数[重复]

    这个问题在这里已经有答案了 直接进入正题 我有一个 jquery 事件监听器 如下所示 number click printNumber 和一个回调函数 function printNumber number console log num
  • 在 CakePHP 中向文章添加评论

    我正在学习 CakePHP 这是我的第一个 MVC 我有一些 最佳实践 问题 这是我对显示新闻文章的看法 h1 h1 p p div class comment style margin left 50px p p div
  • 为 has_many 或 habtm 动态创建 after_add 和 after_remove 回调?

    有没有办法动态添加after add and after remove回调现有的has many or has and belongs to many关系 例如 假设我有模型User Thing 和一个连接模型UserThingRelati
  • 部分视图内的 ValidationSummary 未显示错误

    我有这样的部分观点 简化 model Portal Models LoginModel div class login container k block section class using Html BeginForm actionN
  • 未找到 CakePHP DebugKit/插件 webroot

    我已经安装了 CakePHP 的调试工具包 但它无法在我的页面上正确加载 它只是页面底部的一堆文本和数组 我的浏览器显示出现 404 错误 debug kit css debug toolbar css debug kit js jquer
  • 在 TinyMCE 中使用新的 iframe 嵌入代码嵌入 YouTube 视频

    我尝试使用旧的嵌入代码将 YouTube 视频添加到 TinyMCE 中 效果很好 一些用户可能没有意识到他们必须点击 YouTube 嵌入代码链接中的旧嵌入代码选项才能添加它 我想让用户变得更容易 并允许他们直接复制新的嵌入代码并将其粘贴
  • CakePHP 视图包括其他视图

    我有一个 CakePHP 应用程序 在某些时候会显示带有产品媒体 图片或视频 的视图 我想知道是否有某种方式可以包含另一个威胁视频或威胁图片的视图 具体取决于标志 我想将这些 小视图 用于其他几个目的 所以它应该 像 蛋糕组件一样 以便重用
  • cakephp 无法在 Ubuntu 上进行 url 重写

    全部 这次我尝试 cakephp 但我得到了 您的服务器上的 URL 重写未正确配置 1 帮我配置它 2 我不 不能使用 URL 重写 我可以知道这是 apache 和 htaccess 问题 例如 etc apache2 sites av
  • CakePHP保存三模型关系关联

    我有以下输出 需要将其插入数据库中 Array Test gt Array Question gt Array 0 gt Array category id gt 3 answer style id gt 2 Answer gt Array
  • CodeIgniter PHP 模型访问“无法找到您指定的模型”

    我一直在尝试为我正在构建的这个网站加载一些模型 但不知道什么原因 会带来如下错误 An Error Was Encountered Unable to locate the model you have specified logon mo
  • 获取 android 回调“外部”变量的值

    有一个字符串message作为接口方法中的参数 public class Home extends AppCompatActivity private String globalStringResult null Override prot
  • 为持久任务创建 REST API 的最佳方法?

    假设我有 2 台服务器 第一个是提供一些计算的服务 该计算可以持续很长时间 几分钟到几小时 第二个服务器将使用此服务来计算一些数据 我正在尝试为第一台服务器设计一个 REST API 到目前为止一切顺利 但我想听听一些关于如何在长期任务完成
  • 模型视图演示者 - 被动视图 - 谁加载模型?

    我很好奇使用 MVP 模式来提高可测试性 我有 MVC 经验 但 MVP 似乎有所不同 我有一个在 项目 文件上运行的应用程序 该文件实际上是多个文件和文件夹的压缩存档 这个项目应该是我的模型 我将把加载模型的代码放在哪里 我还在考虑另一个
  • CakePHP: $form->input('复选框');

    与配置 div gt false form gt input checkbox print
  • 如何正确中断使用 matplotlib 创建的动画?

    我想正确地中断动画 背景 我有一个封装到 tkinter 实例中的 matplotlib 图 动画 我希望当用户按下 tkinter 按钮时 动画必须停止 删除并重新启动 我正在中断旧动画 通过使用del fig在回调函数 由按钮调用 的开
  • CakePHP - 在我的应用程序结构中放置自定义实用程序类的最佳位置在哪里?

    我正在制作实用程序类 它将提供帮助操作字符串的通用方法 我可能还想要一个用于数组 数学函数等的组件 这些应该是组件吗 供应商 我可以将它们制作成某种供应商包吗 如果它们是通用的独立库 不依赖于请求周期的任何特定步骤 控制器 模型 视图 请将

随机推荐

  • 在 Python 3 中从 utf-16 转换为 utf-8

    我正在使用 Python 3 进行编程 但遇到了一个小问题 我在网上找不到任何关于它的参考 据我了解 默认字符串是 utf 16 但我必须使用 utf 8 我找不到将从默认字符串转换为 utf 8 的命令 我非常感谢你的帮助 在 Pytho
  • 当 springboot 应用程序在 docker 容器上运行时,无法找到 LoginModule 类:org.apache.kafka.common.security.plain.PlainLoginModule

    我有一个 Spring Boot 应用程序使用spring kafka向 kafka 发布消息的依赖 kafka 配置使用标准 kafka properties sasl jaas config 对 kafka 服务器进行身份验证 应用程序
  • 如何从 Newlib 在 GCC 中实现 printf?

    我正在努力使用 GCC 将 printf 从 newlib 正确实现到我的 esp32 中 我已经阅读了 newlib 文档 它为我提供了有关如何调用 printf 的一般信息 但没有向我解释后端实现 根据我当前的研究 我确定 printf
  • Jenkins 基于用户的工作安全

    我在本地计算机上只有一个 jenkins 实例 我们用它来构建代码 我们有不同的项目团队从事不同的项目 每个项目都有不同的工作 为了消除一个团队中的某人意外搞乱另一个团队工作的可能性 我创建了多个 jenkins 用户 但是 所有可以登录的
  • Sqlite 中的 acos 函数

    我有一个关于 SQLite 查询的问题 我需要执行这样的 sqlite 查询 SELECT id 6371 acos cos radians 78 3232 cos radians lat cos radians lng radians 6
  • 在 Android (JAVA) 中的字符串上使用 XPath

    我正在寻找一些在 Android 中使用 xpath 的示例 或者谁能 分享一下他们的经历 我一直在努力解决这个问题的尾部或头部 我有一个包含标准 xml 文件的字符串 我相信我需要将其转换为 xml 文档 我发现这段代码我认为可以解决问题
  • 如何让 2 个 HtmlUnit Web 客户端使用相同的 cookie?

    如果我在不同的线程中创建 2 个 WebClient 如何让它们使用相同的 cookie 您可以使用以下代码 CookieManager cookieManager new CookieManager webClient1 setCooki
  • 无法将 NSTaggedPointerString 类型的值转换为 NSDictionary

    我正在尝试将 Firebase 值分配给我的结构 var productsArray Product 但是我有一个小错误 无法将 NSTaggedPointerString 类型的值转换为 NS字典 我知道我不能直接分配它们 所以这就是我这
  • NOT IN 不会产生与 NOT EXISTS 相同的结果

    这些都是相当基本的陈述 我有一个链接到另一个表中的项目的图形列表 我想检查有多少图形没有使用并且理论上可以删除 所以首先我使用了 NOT IN 子句 SELECT GraphicNr Graphicfile FROM dbo Graphic
  • 对哈希进行排序的最快方法是什么?

    人们经常问什么是best方式对哈希进行排序 但随后他们不会询问所需的后续问题 即什么是fastest方式 这确实决定了最好的方式 无论使用什么版本的 Ruby 在 Ruby 中对哈希进行排序的最快方法是什么 我正在寻找其他答案 以涵盖极端情
  • 从 Android 中 JSONString 中存储的 URL 加载 ImageView 中的图像

    我有一个JSON字符串 说出名称和 Url 我需要将名称提取到TextView并提取并显示图像ImageView 以下是上述场景的代码 public static final String JSON STRING WebImages Ima
  • 使用 VBA 动态创建 HTML 表格行

    我正在使用 VBA 在 Outlook 电子邮件中创建一个表 我已经弄清楚如何生成表 但我的问题是我需要动态调整表中的行数 对于某些电子邮件 将有两行数据 对于其他电子邮件 将有三行 依此类推 在下面的代码中rowstocontact is
  • setWebViewClient 与 setWebChromeClient 有什么区别?

    有什么区别setWebViewClient vs setWebChromeClient在安卓中 来自源代码 Instance of WebViewClient that is the client callback private vola
  • 当我的闪屏启动时出现 java.lang.UnsupportedOperationException

    当我的启动屏幕启动时 我在 logcat 中收到错误 11 06 02 36 45 450 E global 4184 Deprecated Thread methods are not supported 11 06 02 36 45 4
  • 简单的 Android 应用程序 - 在智能手机上运行时出现内存不足错误

    我对 Android Studio 相当陌生 我尝试制作一个简单的应用程序 单击按钮后应出现随机图像 下一个不可能是已经展示过的 我有两节课 MainActivity 和 RandomCardDraw 当我在 AVD 模拟器中运行该应用程序
  • JFreechart极坐标图形状注释

    我正在尝试用不同的颜色为极坐标图的不同区域着色 例如 为角度 20 和 60 之间以及半径 2 和 4 之间的区域着色 我怎样才能做到这一点 我正在考虑使用形状注释并从那里绘制弧线 但似乎极坐标图没有形状注释 有任何想法吗 谢谢 impor
  • PHP:最佳配置存储?

    我的应用程序通过大量键 值进行配置 例如 30 000 个 我想找到这些配置的最佳部署方法 因为我知道我想避免 DEFINE 以允许运行时重新配置 我想过 通过 php 文件将它们预编译成数组 将它们预编译到 tmpfs sqlite 数据
  • Access-Control-Allow-Origin 错误但请求通过

    我目前正在将一个基本 API 部署到我的实时服务器上 并且遇到了 我认为是 CORS 问题 但发生了一些我无法解释的行为 我正在从 AngularJS 前端与 Laravel 5 laravel cors 后端 我开始使用简单的 jQuer
  • 如何获取 Silverlight 应用程序中的客户端大小?

    我想获取运行 Silverlight 应用程序的浏览器窗口的大小 我尝试过以下几行 但它总是返回零 public Page InitializeComponent Initialize public void Initialize Worl
  • 删除前的模型回调

    我试图在使用级联模型删除这些图像的容器时删除图像 delete 级联工作正常 但我无法在删除后回调模型以正常工作 因此我可以在删除时删除实际的图像文件 function beforeDelete containerId this gt id