【问题标题】:How to update or save a specific field only in CakePHP 3.0?如何仅在 CakePHP 3.0 中更新或保存特定字段?
【发布时间】:2015-05-18 14:07:44
【问题描述】:

我想在 Cakephp 3.0 中更新或保存表格的特定字段。我从 Cakebook 尝试了Updating Data,它正在保存数据,但问题是它还在数据库中保存了指定为日期时间的 modified 字段。在这种情况下,我不想保存这个字段。我该怎么做?

提前致谢

【问题讨论】:

  • 是的,但 IMO 不需要使用连接管理器类。文档应该包含一个更好的例子@book.cakephp.org/3.0/en/orm/behaviors/timestamp.html。
  • @ndm, stackoverflow.com/questions/30218488/… 可以解决问题,但必须在同一控制器中使用 TableResigtry 再次加载表实例。所以我不需要在同一个控制器中加载它,因为我们可以默认获取实例。
  • 您不必再次加载表格,您可以使用已有的表格,毕竟这只是示例代码。
  • 非常感谢。但在问之前,我确实尝试过但没有运气$query = $this->Posts->query(); $post = $query->update()->set(['field' => $newfield])->where(['id' => $id])->execute();

标签: cakephp cakephp-3.0


【解决方案1】:

当您不想触发回调时,只需使用updateAll()

$table->updateAll(['field' => $newValue], ['id' => $entityId]);

【讨论】:

  • 效果很好,但是关联字段呢?例如$this->Users->updateAll(...); 很好,但如果用户属于组,则在用户控制器中 $this->Users->Groups->updateAll(['field'=>$data1],[$id=>$data2]) 尝试工作,但数据出现错误。 UPDATE groups SET field = :c0 WHERE = :c1
猜你喜欢
  • 1970-01-01
  • 2013-02-04
  • 1970-01-01
  • 1970-01-01
  • 2021-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多