1

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

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

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

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

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

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

1 回答 1

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

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

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

于 2012-06-02T20:27:23.623 回答