CakePHP - 如果是INSERT或UPDATE,如何检查beforeSave

问题描述 投票:18回答:3

在我的模型的beforeSave方法中,如何检查保存操作是INSERT还是UPDATE?

我想添加到模型数据,但只有在插入新行时才会添加。

cakephp cakephp-2.0
3个回答
20
投票

如果id存在,您可以检查数据:

function beforeSave($options = array())
{
  if(empty($this->data[$this->alias]['id']))
  {
    //INSERT
  }
  else
  {
    //UPDATE
  }
}

0
投票

你可以试试这个

public function beforeSave($options = array()) {

    if($this->id) {
        // Update
    } else {
        // Add
    }
}

0
投票

CakePHP Cookbook

afterSave(boolean $created, array $options = array())

如果创建了新记录(而不是更新),$created的值将为true。

© www.soinside.com 2019 - 2024. All rights reserved.