我在book.cake中关注,我不知道我应该向参数发送一些东西。
function beforeSave() {
if (!empty($this->data['Article']['create_dt']) && !empty($this->data['Article']['modified_dt'])) {
$this->data['Article']['create_dt'] = $this->dateFormatBeforeSave($this->data['Article']['create_dt']);
$this->data['Article']['modified_dt'] = $this->dateFormatBeforeSave($this->data['Article']['modified_dt']);
}
return true;
}
我尝试搜索示例但未找到。 我需要很多例子 有人可以帮我找到大资源 谢谢你的建议
答案 0 :(得分:6)
beforeSave
。在其中,您可以在每次保存之前做任何您想做的事情。通常,这意味着更改$this->data
,这是即将保存的数据。
该方法传递一个参数:array('validate' => true/false, ('fieldList' => array(...))
形式的数组。这相当于您可以提供给save()
的两个额外参数:
$this->Model->save($this->data, false, array('foo', 'bar'));
在这种情况下,阵列看起来像是
array('validate' => false, 'fieldList' => array('foo', 'bar'))
。
您可以通过指定参数来接受此数组:
public function beforeSave($options) { ... }
$options
将如上所述。您可以以任何方式使用此信息。
如果您return true
没有beforeSave
,则完全取消保存操作。
就是这样。
答案 1 :(得分:1)
尝试在table cake中使用带有日期时间类型的创建和修改的魔术字段自动处理它们
答案 2 :(得分:0)
我想提一下,应该谨慎使用beforeSave(),因为每次使用此模型保存数据时都会使用它。
如果您忘记使用它,您将获得意想不到的结果。 多次发生在我身上......;)