问题描述
|
我遵循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()应该小心使用,因为每次使用此模型保存数据时都会使用它。
如果您忘记使用它,将会得到意想不到的结果。
发生了几次...;)