【问题标题】:Data getting lost from Behavior's beforeValidate() to Model's beforeSave()数据从 Behavior 的 beforeValidate() 丢失到 Model 的 beforeSave()
【发布时间】:2012-06-17 20:42:09
【问题描述】:

更新:

使用saveAll() 时,slug 似乎没有保存。我让它在saveAll 之后立即执行save(),它现在可以工作了,但这显然是一个混乱,如果可能的话,我宁愿让它与saveAll 一起工作......我还有其他应该是的模型生成蛞蝓,我宁愿不必每次都为了创建蛞蝓而双重保存。


原始问题:

尝试实现此行为:https://github.com/vduglued/CakePHP-Sluggable-Behavior/blob/master/sluggable.php

它工作正常,但最近停止了...我不确定问题是什么,或者我们改变了什么,但我已经缩小了问题的范围

在行为的beforeValidate(); 函数中,它会向数据中添加正确的slug。当我当时调试$model->data 时,它显示:

Array('Article' => array('slug'=>'test_1234')  ...

在其他数据中。

如果我在我的 Article 模型的 beforeSave() 中删除 THAT 调试和调试 $this->data,它会显示所有数据,但不会显示应该通过 SluggableBehavior 添加的 slug 字段。

我认为我不应该改变行为,因为我之前认为它工作正常..但也许 CakePHP 版本的最近更新改变了行为和模型的通信方式?

【问题讨论】:

  • Dave 可以发布控制器操作吗?

标签: cakephp cakephp-2.2


【解决方案1】:

这是 saveAssociated() 中的一个错误,请更新您的蛋糕核心

【讨论】:

  • 为了对未来的用户更具体,根据 CakePHP.org 网站,他们最近添加了一个修复:“Model::saveMany(), saveAssociated() 正确保存在 beforeValidate 中修改的数据() 回调。”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 2014-09-28
  • 1970-01-01
相关资源
最近更新 更多