Ответ 1
Вы можете просто проверить данные, если существует id
:
function beforeSave($options = array())
{
if(empty($this->data[$this->alias]['id']))
{
//INSERT
}
else
{
//UPDATE
}
}
В моем методе модели beforeSave
, как я могу проверить, будет ли операция сохранения INSERT или UPDATE?
Я хочу добавить к данным модели, но только если он вставляет новую строку.
Вы можете просто проверить данные, если существует id
:
function beforeSave($options = array())
{
if(empty($this->data[$this->alias]['id']))
{
//INSERT
}
else
{
//UPDATE
}
}
http://book.cakephp.org/2.0/en/models/callback-methods.html#aftersave
afterSave(boolean $created, array $options = array())
Значение созданного $будет истинным, если была создана новая запись (а не обновление).
Вы можете попробовать это
public function beforeSave($options = array()) {
if($this->id) {
// Update
} else {
// Add
}
}