在我的代码中,我使用一些设置调用来设置模型的字段,例如
$model->set('field','value');
如果我理解正确,则会在$model->data
数组中设置字段值。
紧接着(即相同的请求,但代码的不同部分),我想访问这些字段以进一步处理它们。我认为这可能是:
$value = $model->field('field');
但这不起作用,因为(正如我通过查看代码发现的那样)field()
正在查询表,但不使用$model->data
数组。现在我的问题:
$model->set(...)
设置但尚未保存到表中的模型中再次读取字段值的“正确”方法是什么?直接访问$model->data
?$model->save()
才能再次访问字段值?答案 0 :(得分:0)
使用$model->data
访问要保存的模型中的当前数据。就像你说的那样,field()
会进行查询。要在保存之前修改数据,可以在设置模型数据之前使用Model::beforeSave()
回调或修改数据。
如果您的意思是访问另一个请求,是的,您必须保存。如果您的意思是在保存之前访问当前请求中的数据,请执行。有关如何访问/更改数据的信息,请参阅#1。
不必要,请参阅#1。