CakePHP-为什么Model :: save cause()使用INSERT而不是UPDATE?

哈里斯·普兰布迪

我想以CAKEPHP的方式更新数据库,这是我的控制器

$data = array(
'KnowledgeBase' => array(
'kb_title' => $this->data['KnowledgeBase']['kb_title'],
'kb_content' => $this->data['KnowledgeBase']['kb_content']
'kb_last_update' => date("Y-m-d G:i:s"),
'kb_segment' => $this->data['KnowledgeBase']['kb_segment']
));
$this->KnowledgeBase->id_kb = $this->data['KnowledgeBase']['id_kb'];
$this->KnowledgeBase->save($data);

假设我发布的表单是正确的,当我执行程序时,我会遇到类似以下的错误:

Database Error

 Error: SQLSTATE[23000]: [Microsoft][SQL Server Native Client 10.0]
[SQL Server]Violation of PRIMARY KEY constraint 'PK_cnaf_kb'.
 Cannot insert duplicate key in object 'dbo.cnaf_kb'.

SQL Query: INSERT INTO [cnaf_kb] ([kb_judul], [kb_segment], [kb_isi], [id_kb], [kb_last_update], [kb_status]) VALUES (N'HARRIS TEST 4 ', N'4', N'<p>TESSSSSSSSSSSSSSSSSSSSSS</p> ', 73, 
'2013-10-04 16:57:00', 1)

为什么函数使用插入查询?不更新?

注意:我不使用窗体助手来发布到控制器,并且我使用Cakephp 2.3.8版本和sql server 2008作为数据库

对不起,我的英语不好,我希望有人能帮助我:(((

ndm

您没有提供主键值,这就是原因。

无论您的主键名为(Model::$primaryKey),在模型对象上,如果要设置主键值,都必须使用id属性(Model::$id)。

$this->KnowledgeBase->id = $this->data['KnowledgeBase']['id_kb'];

在内部,模型将其映射到适当的主键字段。

但是,在数据中,您将使用实际的主键名称:

'id_kb' => $this->data['KnowledgeBase']['id_kb']

顺便说一句,我不确定为什么要(重新)构建data数组,但是如果要确保只保存特定的字段,则可以改用该fieldList选项

$this->data['KnowledgeBase']['kb_last_update'] = date('Y-m-d G:i:s');

$options = array(
    'fieldList' => array(
        'kb_title',
        'kb_content',
        'kb_last_update',
        'kb_segment'
    )
);

$this->KnowledgeBase->save($this->data, $options);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

CakePHP-为什么Model :: save cause()使用INSERT而不是UPDATE?

来自分类Dev

Django save() 运行 INSERT 而不是 UPDATE:为什么?

来自分类Dev

为什么使用update_attributes或save时ActiveRecord会验证Model的所有列

来自分类Dev

为什么 mongoose 中的 save() 不是函数?

来自分类Dev

为什么CakePHP将_method设置为PUT而不是POST

来自分类Dev

CakePHP 3:为什么不在模型中使用Session

来自分类Dev

为什么不使用cakephp更新多个记录?

来自分类Dev

CakePHP 3:为什么不在模型中使用Session

来自分类Dev

如何在CakePHP 3中的model-> save()上获取SQL查询?

来自分类Dev

为什么gulp需要安装--save-dev而不是仅安装--save

来自分类Dev

为什么url参数在cakephp中被索引为'named'而不是'pass'?

来自分类Dev

Django表单的行为。ModelForm.save():为什么无法通过父代使用models.save_instance?

来自分类Dev

cakePHP3使用什么版本的Foundation?

来自分类Dev

使用CakePHP的i18nFormat 3-为什么YYYY与yyyy产生不同的年份?

来自分类Dev

为什么通过jQuery更改“ disabled”字段后,cakePHP在Blackhole上使用黑洞?

来自分类Dev

为什么在Gmail中使用localhost在Cakephp中发送邮件时,gmail smtp无法正常工作

来自分类Dev

cakePHP save很多不起作用

来自分类Dev

调试save()返回错误的CakePHP 3.0

来自分类Dev

CakePHP在save()上耗尽了奇怪的内存

来自分类Dev

CakePHP save很多不保存

来自分类Dev

CakePHP为什么关联为null?

来自分类Dev

CakePHP 3的json响应缓慢,为什么?

来自分类Dev

使用[mongoose_model_object] .save()方法时,contact.save不是函数错误

来自分类Dev

CakePHP Model FK加入

来自分类Dev

CakePHP-与“普通” PHP函数相比,使用CakePHP函数有什么优势?

来自分类Dev

为什么.save在Mongoose中起作用但在带有upsert的.update中不起作用

来自分类Dev

CakePHP:为什么他们将className与第一个小括号()一起使用?

来自分类Dev

使用model.save()发布表单

来自分类Dev

在cakephp中的组件内部使用模型的正确方法是什么?

Related 相关文章

  1. 1

    CakePHP-为什么Model :: save cause()使用INSERT而不是UPDATE?

  2. 2

    Django save() 运行 INSERT 而不是 UPDATE:为什么?

  3. 3

    为什么使用update_attributes或save时ActiveRecord会验证Model的所有列

  4. 4

    为什么 mongoose 中的 save() 不是函数?

  5. 5

    为什么CakePHP将_method设置为PUT而不是POST

  6. 6

    CakePHP 3:为什么不在模型中使用Session

  7. 7

    为什么不使用cakephp更新多个记录?

  8. 8

    CakePHP 3:为什么不在模型中使用Session

  9. 9

    如何在CakePHP 3中的model-> save()上获取SQL查询?

  10. 10

    为什么gulp需要安装--save-dev而不是仅安装--save

  11. 11

    为什么url参数在cakephp中被索引为'named'而不是'pass'?

  12. 12

    Django表单的行为。ModelForm.save():为什么无法通过父代使用models.save_instance?

  13. 13

    cakePHP3使用什么版本的Foundation?

  14. 14

    使用CakePHP的i18nFormat 3-为什么YYYY与yyyy产生不同的年份?

  15. 15

    为什么通过jQuery更改“ disabled”字段后,cakePHP在Blackhole上使用黑洞?

  16. 16

    为什么在Gmail中使用localhost在Cakephp中发送邮件时,gmail smtp无法正常工作

  17. 17

    cakePHP save很多不起作用

  18. 18

    调试save()返回错误的CakePHP 3.0

  19. 19

    CakePHP在save()上耗尽了奇怪的内存

  20. 20

    CakePHP save很多不保存

  21. 21

    CakePHP为什么关联为null?

  22. 22

    CakePHP 3的json响应缓慢,为什么?

  23. 23

    使用[mongoose_model_object] .save()方法时,contact.save不是函数错误

  24. 24

    CakePHP Model FK加入

  25. 25

    CakePHP-与“普通” PHP函数相比,使用CakePHP函数有什么优势?

  26. 26

    为什么.save在Mongoose中起作用但在带有upsert的.update中不起作用

  27. 27

    CakePHP:为什么他们将className与第一个小括号()一起使用?

  28. 28

    使用model.save()发布表单

  29. 29

    在cakephp中的组件内部使用模型的正确方法是什么?

热门标签

归档