插入新行而不是更新当前行

2024-01-13

您好,我对下面的代码有疑问 我正在做ajax,如果数据完全相同,则不会插入记录。但是,如果文本区域中的文本发生更改,它应该更新记录,但会插入新行。

这是我的模型

<?php 
class Test extends AppModel {

    var $belongsTo = array('table1','table2');

        var $validate = array(
            'field1' => array(
                'rule' => 'duplicateCheck',
                'message' => 'Duplicate record'
            ),
            'textbody' => array(
                'rule' => 'duplicateCheck',
                'message' => 'Duplicate record'
            )
        );

        function duplicateCheck() {
            $conditions = array(
                'Test.field1' => $this->data['Test']['field1'],
                'Test.textbody' => $this->data['Test']['textbody']
            );
            return !$this->hasAny($conditions);
        }

}
?>

这是我的控制器

<?php

function add() {

        if(isset($this->data)) {

        if($this->Test->save($this->data['Test'])) {

        } else {


            if(isset($this->Test->validationErrors['field1'])) {



            }
        }
    }



}   

?>

不知道如何解决这个问题 谢谢

EDIT

好的,我将其更改为此,但现在它不会更新该字段

var $belongsTo = array('table1','table2');

    var $validate = array(
        'field1' => array(
            'rule' => 'duplicateCheck',
            'message' => 'Duplicate record'
        ),
        'userid' => array(
            'rule' => 'duplicateCheck',
            'message' => 'Duplicate record'
        )
    );

    function duplicateCheck() {
        $conditions = array(
            'Test.field1' => $this->data['Test']['field1'],
            'Test.userid' => $this->data['Test']['userid']
        );
        return !$this->hasAny($conditions);
    }

} ?>


确保将 PK 传递给 $this->Model->save(),否则它将为 PK 字段创建一个新 ID。此外, $this->data 应该发送到保存为 $this->data 并包含模型名称。因此,如果您的型号名称是 Test,请尝试按以下方式发送:

$this->Test->save($this->data)

NOT

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

插入新行而不是更新当前行 的相关文章

  • CakePHP 3.0:如何在重复键更新时进行插入?

    我有一个数组 articles像这样 int 0 gt id gt 940039 xe dsca gt P2768G 1 xe citg gt 1F0200 xe cuni gt stk xe seak gt P2768G 1 xe sea
  • CakePHP:控制台命令中的自定义错误报告

    我们当前使用 CakePHP 2 4 7 和自定义错误处理程序 自定义错误处理程序适用于通过 HTTP 或 CronDispatcher 发出的每个请求 不幸的是 当向我们的控制台命令之一发出控制台请求时 错误处理程序被忽略 请参见以下示例
  • 在 cakephp 2.0.2 中使用 shell 类的插件组件

    我想使用我的 shell 类中的插件组件 我正在尝试使用 App import Component Myplugin Mycomponent this gt Mycomponent new MycomponentComponent 不幸的是
  • 按 ID 分组和按日期排序

    lastComments this gt Comment gt find all array fields gt array Comment news id Comment date Comment content group gt arr
  • CakePHP 3.X 中的自定义 404 页面

    我想为生产环境中出现的所有错误创建一个自定义 404 页面 例如 如果我收到缺少控制器或视图错误 那么它将重定向到http example com 404 html 另外在某些情况下我会故意重定向它http example com 404
  • 登录后如何在其他页面控制器中找到我当前的用户ID?

    我计划在我的事件索引页面上设置权限 该权限只允许某些用户查看我添加事件时设置的权限 用户点击进入我的事件后 事件控制器将首先检查用户 ID 并检查事件数据库 该数据库控制用户可以查看其日历中的哪个事件 当用户创建事件并分享给其他用户时添加权
  • cakephp 3.0 如何使用值而不是 id 填充选择字段

    我一直在寻找以前的答案 但我找到的答案与旧的 cakephp 版本有关 我有两个表 杂志 和 问题 其中存在关系 问题 属于 杂志 问题表如下所示 public function initialize array config this g
  • CakePHP 3 API 的 POST 请求不起作用

    我正在使用 CakePHP 3 x 文档开发 API 为了开发这个 API 我使用了他们的官方文档 https book cakephp org 3 0 en development rest html https book cakephp
  • CakePHP - 选择性 SSL

    如何对网站的某些部分强制使用 HTTPS 例如登录页面或注册页面 并使用 HTTP 来完成网站的其余部分 我最喜欢的强制转换为 https 的方法是将其作为 php 脚本中的第一件事 它可以在 Joomla 中运行 也可以在 CakePHP
  • CakePHP 会话被写入 /tmp/ 而不是 /app/tmp/sessions/

    这里有类似的简单但未回答的问题 cakephp 会话 tmp sessions 中没有新文件 https stackoverflow com questions 24733151 cakephp session no new files i
  • cakephp 1.1 与 php 5.3

    我刚刚从 php 5 1 升级到 5 3 之前在我的服务器上使用 cakephp 1 1 自从升级 或者可能更早 我不确定 以来 我收到以下错误 任何人都可以透露一些信息 Deprecated Assigning the return va
  • CakePHP Xml 实用程序库触发 DOMDocument 警告

    我正在使用 CakePHP 在视图中生成 XMLXML核心库 http book cakephp org 2 0 en core utility libraries xml html xml Xml build data array ret
  • Cakedc.users => 总是重定向到主页

    我在新的 Cakephp 安装上使用插件 CakeDC Users 我有两个控制器 PagesController php CardsController php Pages 有 1 个操作 Beta 它是主页 Cards 有两个操作 索引
  • 由于缺少 PHP 扩展,CakePHP 3 无法连接到数据库

    我正在尝试使用 WT NMP 安装 cakePHP 3 0 0 但收到以下消息 CakePHP 无法连接到数据库 由于以下原因无法使用数据库驱动程序 Cake Database Driver Mysql 缺少 PHP 扩展或未满足的依赖项
  • CakePHP hasOne/belongsTo 模型关系

    我有几个模型正在尝试关联 一种模型是Item 一个是Slide 另一个是Asset 项目下方有多个幻灯片 资产基本上是已上传的文件 图像 mp3 等 幻灯片是显示资产的位置 每张幻灯片都有一个资产 但给定的资产可能属于多张幻灯片 一张幻灯片
  • cakephp auth->admin 的登录重定向

    我对 cakePHP 相当陌生 并且已经阅读了蛋糕网站上的所有教程 我正在使用 cake 2 1 构建一个小型示例应用程序 但遇到了问题 基本上 我希望管理员用户在登录时重定向到与普通用户重定向到的页面不同的页面 我确信有一个简单的方法可以
  • CakePHP 中的 hasMan 简化为 hasOne

    基本上我在 CakePHP 中有以下模型 User id username Photo id user id path 我已经建立了以下关系 用户有很多照片 在一个屏幕上 我想列出用户 并在每个用户旁边显示随机照片 我尝试建立以下关系 用户
  • 何时在 CakePHP 中进行清理

    我读了食谱 第 4 2 节 如果您使用 CakePHP 的 ORM 方法 例如 find 和 save 和正确的数组表示法 即 array field gt value 而不是原始 SQL CakePHP 已经可以保护您免受 SQL 注入
  • 如何删除 CakePHP 的尾随计时基准注释

    我已经解决这个可怕的问题几个小时了 尽我所能在谷歌上搜索 但仍然不幸找到解决方案 问题是 CakdPHP 渲染的每个页面都有一个默认的尾随计时基准注释 例如 如何删除最后一行 在此处输入代码 core php or anywhere els
  • CakePHP 视图包括其他视图

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

随机推荐