【问题标题】:CakePHP: inserting into a MySQL ARCHIVE engine tableCakePHP:插入 MySQL ARCHIVE 引擎表
【发布时间】:2014-06-03 05:03:52
【问题描述】:

我有一个小的 ARCHIVE 引擎表,我想在有人做某事时将日志提交到该表中。我为每一行提供一个唯一的“id”;相反,我的“id”列是用户的 ID。

我使用this->model->save() 并且第一个插入很好。问题是 Cake 认为我第二次尝试更新某人做某事,而我真正想要的只是创建另一条记录,具有相同的用户 ID,具有不同的操作或时间戳。

如何强制 CakePHP 只插入而不使用query()?并且不必为“行 ID”制作第 5 列?

【问题讨论】:

  • 请提供更多信息 - 您使用的是create() -> set() -> save() 方法吗?如果你是并且它仍在更新,我建议你给模型一个唯一的 ID 并忽略它。

标签: php mysql cakephp cakephp-2.0 cakephp-2.4


【解决方案1】:

始终确保取消设置主键。例如在 beforeValidate 中。这将触发保存而不是更新。

See the documentation

【讨论】:

  • 我快要写出自己的答案了,但这引导我朝着正确的方向前进。事实证明,CakePHP 假定任何“id”列都是主键。简而言之,我只是将列的名称从“id”更改为“uid”,现在它可以工作了。奇怪。我将等着看是否有人可以说明这是如何工作的,但如果没有,我会接受你的回答。
猜你喜欢
  • 2017-08-30
  • 2013-08-07
  • 1970-01-01
  • 1970-01-01
  • 2012-10-13
  • 1970-01-01
  • 2013-04-23
  • 1970-01-01
  • 2012-09-07
相关资源
最近更新 更多