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

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 和子查询

    如何使用 cake 语法编写 SQL 子查询 我知道如何编写简单的查询 但无法处理子查询 这是原始查询 SELECT Assumption id Referee id Referee first name Referee second na
  • 自定义提交按钮

    如何创建提交按钮 并在其上定义自定义标题以及自定义类样式 你可以使用submit http book cakephp org view 1431 submit or button http book cakephp org view 141
  • 用于调试的 YII 日志记录

    在很多情况下 Xdebug不适合调试 因为它涉及点击运行到特定的代码行 我想使用类似的东西cakePHP调试功能 供开发人员将类的特定属性的值输出到浏览器 我在用Yii framework这是我的配置yii log in the main
  • PHP 字符串中不定冠词 (a, an) 的正确形式

    有没有一种简单的方法可以替换字符串中的 a an 以与后面的单词一致 与日期格式中 S 的工作方式非常相似 e g apple apple pear pear echo This is a apple this is a pear gt T
  • CakePHP 分页 - 如何从 url 中删除“page:”以获得更好的 seo/更干净的 URL

    当我使用 CakePHP Paging 时 我得到一个像这样的 url http example com php page 2 我必须在控制器 视图和routes php中更改什么才能创建这样的工作网址 http example com p
  • 在 CakePHP v2.0 中使用电子邮件地址进行身份验证

    好吧 这个问题与我最近在 Stack Overflow 上问的问题类似 但我基本上只是使用 CakePHP 书中的代码而不是我自己的代码来尝试理解为什么有些东西不起作用 基本上 这个想法是允许用户在 Cake 2 0 版本中使用他们的电子邮
  • Cakephp 3 - 运行 phpunit 测试时出现 MissingDatasourceConfigException

    我正在尝试使用 PHPUnit 4 7 3 在 CakePHP 3 中运行一些单元测试 但出现以下错误 PHPUnit 4 7 3 by Sebastian Bergmann and contributors There was 1 err
  • CakePHP:以数组作为参数调用另一个控制器的操作的最佳方法?

    在控制器中 调用另一个控制器的操作并传递数组作为参数的最合适方法是什么 我知道您可以使用 requestAction 来调用其他控制器中的操作 但是是否可以使用请求操作将数组作为参数传递 不 我不想将操作放入应用程序控制器中 所以这对我来说
  • 来自模型和控制器的 cakephp 验证

    我已经在模型中进行了验证 另外 我在控制器中进行了一些验证以检查验证码 此后 应用程序不再显示模型验证错误 如果我评论控制器代码 模型验证工作正常并显示错误 两个都不行 型号代码 示例 class User extends AppModel
  • Cakephp Auth: $this->Auth->login错误消息

    我正在使用身份验证组件 我在 beforeFilter 中设置 this gt Auth gt loginError 但我还有另一种可能性 如果用户输入的用户名和密码正确 但 User status pending 我怎样才能显示不同的消息
  • 如何为一般 authError 消息定义 FlashHelper/Component 元素

    将 CakePHP 从 2 6 2 更新到 2 7 2 后 在创建 auth flash 消息时出现丢失密钥错误 如何定义默认的元素模板authError Since SessionComponent setFlash 已经已弃用 http
  • 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 和 modelName gt find 调用选择相当多的行 可能是数百行 通常 在 PHP MySQL 中这当然不会成为问题 因为您在 while 循环中获取它们 但是 CakePHP 将所有行加载到一个数组中
  • 有没有 CakePHP 离线手册

    曾经有过 但似乎没有任何直接联系 经过一番挖掘 发现了一些答案 我认为分享这些答案会很有用 这些是一页中的手册链接 对于离线使用很有用 使用 Dardo Sordi Bogado 的构建脚本或创建 PDF 1 2 一页手册https web
  • 如何使用 wamp 在 Windows 上烘焙 cakephp 2.0 应用程序

    我想在Windows系统上烤蛋糕php项目 我正在使用 wamp 服务器来运行 PHP mysql 我已经浏览过 cakephp 网站上的视频投射 并设置了环境设置 按照演示给出命令 蛋糕 后 最后我收到一条消息说 php 不被识别为内部或
  • CakePHP 后退和前进按钮没有布局

    我们正在 CakePHP 中构建一个大型 CMS 并集成了 Croogo 安装 我们最近遇到了一个问题 当用户单击back在浏览器中 或forward按钮 您最终得到的是使用以下命令的视图 ctp 文件blank布局 所以没有样式 js 等
  • 按 ID 分组和按日期排序

    lastComments this gt Comment gt find all array fields gt array Comment news id Comment date Comment content group gt arr
  • CSS 不适用于 CakePHP 应用程序

    我在使用 CakePHP 时遇到问题 找不到 CSS 当我在浏览器中查看源代码时 我可以在头部看到蛋糕通用 CSS 链接 但是当我点击它查看实际的源代码时 我收到了 404 未找到错误 Update 我已按照此处的说明进行操作 http b
  • Cakephp - CSRF 令牌不匹配

    我在 Cakephp 3 6 中有一个项目 其中 MessageController 中的 3 个操作由 Ajax 调用 但是 我有一个问题 当我向其中一个操作发送请求时 XHR 会向我返回以下内容 message CSRF token m
  • CakePHP Xml 实用程序库触发 DOMDocument 警告

    我正在使用 CakePHP 在视图中生成 XMLXML核心库 http book cakephp org 2 0 en core utility libraries xml html xml Xml build data array ret

随机推荐