在我的模型的beforeSave
方法中,如何检查保存操作是INSERT还是UPDATE?
我想添加模型数据,但只有在插入新行时才会添加。
答案 0 :(得分:20)
如果id
存在,您只需签入数据:
function beforeSave($options = array())
{
if(empty($this->data[$this->alias]['id']))
{
//INSERT
}
else
{
//UPDATE
}
}
答案 1 :(得分:1)
这就是你在 Cakephp 4 中的做法(以防有人在寻找它)
编辑它也适用于 BadHorsie 所说的 Cakephp 3
public function beforeSave(EventInterface $event, EntityInterface $entity, ArrayObject $options)
{
if ($entity->isNew()) {
//INSERT
}else{
//UPDATE
}
}
答案 2 :(得分:0)
afterSave(boolean $created, array $options = array())
如果创建了新记录(而不是更新),$created
的值将为true。
答案 3 :(得分:0)
你可以试试这个
CSS