cakephp模型:字段与set方法

时间:2012-06-02 19:32:22

标签: cakephp model

在我的代码中,我使用一些设置调用来设置模型的字段,例如

$model->set('field','value');

如果我理解正确,则会在$model->data数组中设置字段值。 紧接着(即相同的请求,但代码的不同部分),我想访问这些字段以进一步处理它们。我认为这可能是:

$value = $model->field('field');

但这不起作用,因为(正如我通过查看代码发现的那样)field()正在查询表,但不使用$model->data数组。现在我的问题:

  1. $model->set(...)设置但尚未保存到表中的模型中再次读取字段值的“正确”方法是什么?直接访问$model->data
  2. 是否有必要先调用$model->save()才能再次访问字段值?
  3. 我觉得有一种方法可以对称地设置和检索字段值而不需要在它们之间保存。 cakephp有同感吗? ;)

1 个答案:

答案 0 :(得分:0)

  1. 使用$model->data访问要保存的模型中的当前数据。就像你说的那样,field()会进行查询。要在保存之前修改数据,可以在设置模型数据之前使用Model::beforeSave()回调或修改数据。

  2. 如果您的意思是访问另一个请求,是的,您必须保存。如果您的意思是在保存之前访问当前请求中的数据,请执行。有关如何访问/更改数据的信息,请参阅#1。

  3. 不必要,请参阅#1。