CakePHP编辑模型数据,最佳实践?

时间:2014-07-04 14:04:52

标签: php cakephp

所以基本上我在两种改变模型数据的方法之间挣扎。

方法1 :(函数直接在模型数据中更改)

$this->Model->set($data);
$this->Model->changeSomeData();

方法2 :(带输入和输出的功能)

$data = $this->Model->data;
$newdata = $this->Model->changeSomeData($data);
$this->Model->set($newdata);

有人可以对此有所了解,使用什么以及为什么?

由于

1 个答案:

答案 0 :(得分:1)

我确信这是Cake 1.x的遗留问题,其中调用Model->set($data)是常见做法。我猜它会发生,因为validate()create()save()需要为模型分配iddata

随着代码的成熟,这种做法已经过时,因为save()会接受$data并执行验证。

这里的问题是CakePHP将模型和实体合并为一个类。良好的数据库布局将分离模型和实体。这就是我认为他们正在使用Cake 3.x

另一个问题是Cake使用缓存来处理模型实例。两个不相关的类可能会更改模型的数据,因为它们共享相同的引用。

所以我强烈推荐方法#2。

代码更易于阅读,更易于维护。