cakephp beforesave问题

时间:2011-05-25 02:52:55

标签: cakephp model cakephp-1.3

我在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;
}

我尝试搜索示例但未找到。 我需要很多例子 有人可以帮我找到大资源 谢谢你的建议

3 个答案:

答案 0 :(得分:6)

在保存数据之前,Cake会自动调用

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(),因为每次使用此模型保存数据时都会使用它。

如果您忘记使用它,您将获得意想不到的结果。 多次发生在我身上......;)