19

在我的模型beforeSave方法中,如何检查保存操作是插入还是更新?

我想添加到模型数据中,但前提是它要插入新行。

4

3 回答 3

22

如果存在,您可以只签入数据id

function beforeSave($options = array())
{
  if(empty($this->data[$this->alias]['id']))
  {
    //INSERT
  }
  else
  {
    //UPDATE
  }
}
于 2012-12-04T14:33:52.963 回答
1

这就是你在 Cakephp 4 中的做法(以防有人在寻找它)

编辑它也适用于BadHorsie所说的Cakephp 3

public function beforeSave(EventInterface $event, EntityInterface $entity, ArrayObject $options)
{
    if ($entity->isNew()) {
       //INSERT
    }else{
       //UPDATE
    }
}
于 2021-01-27T17:06:40.023 回答
0

你可以试试这个

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

    if($this->id) {
        // Update
    } else {
        // Add
    }
}
于 2016-05-24T11:26:51.480 回答