cakephp预先保存问题

问题描述

| 我遵循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;
}
我尝试搜索示例,但未找到。 我需要很多例子 有人可以帮助我找到大资源 谢谢建议     

解决方法

Cake在保存数据之前会自动调用
beforeSave
。在其中,您可以在每次保存之前做任何想做的事情。通常,这意味着更改“ 2”,这是将要保存的数据。 该方法传递一个参数:形式为“ 3”的数组。这对应于您可以提供给
save()
的两个额外参数:
$this->Model->save($this->data,false,array(\'foo\',\'bar\'));
在这种情况下,数组看起来像
array(\'validate\' => false,\'fieldList\' => array(\'foo\',\'bar\'))
。 您可以通过指定参数来接受此数组:
public function beforeSave($options) { ... }
$options
看起来如上所述。您可以根据需要使用此信息。 如果您没有从
beforeSave
中选择
return true
,则保存操作将被完全取消。 就这样。     ,尝试在table cake中使用具有datetime类型的创建和修改的魔术字段会自动处理它们     ,我想提一下,beforeSave()应该小心使用,因为每次使用此模型保存数据时都会使用它。 如果您忘记使用它,将会得到意想不到的结果。 发生了几次...;)