【发布时间】:2012-12-04 12:46:15
【问题描述】:
在我的模型的beforeSave 方法中,如何检查保存操作是插入还是更新?
我想添加到模型数据,但前提是它要插入新行。
【问题讨论】:
标签: cakephp cakephp-2.0
在我的模型的beforeSave 方法中,如何检查保存操作是插入还是更新?
我想添加到模型数据,但前提是它要插入新行。
【问题讨论】:
标签: cakephp cakephp-2.0
如果id 存在,您可以只签入数据:
function beforeSave($options = array())
{
if(empty($this->data[$this->alias]['id']))
{
//INSERT
}
else
{
//UPDATE
}
}
【讨论】:
这就是你在 Cakephp 4 中的做法(以防有人在寻找它)
编辑正如 BadHorsie 所说,它也适用于 Cakephp 3
public function beforeSave(EventInterface $event, EntityInterface $entity, ArrayObject $options)
{
if ($entity->isNew()) {
//INSERT
}else{
//UPDATE
}
}
你可以试试这个
public function beforeSave($options = array()) {
if($this->id) {
// Update
} else {
// Add
}
}
【讨论】: