I normally save new data to the database like this:
$this->MyTable->set(array(
\'id\' => $id,
\'code\' => $temp_code,
\'status\' => $status
Posted data example
Array
(
[ModelName] => Array
(
[column1] => value
[column2] => value
[column3] => value
)
)
Try this to add
if ($this->request->is('post')) {
$this->ModelName->create();
$this->ModelName->save($this->request->data);
}
Try this to edit
if ($this->request->is('post')) {
$this->ModelName->id = 2;
$this->ModelName->save($this->request->data);
}
If you want to save new data, just use Model::save()
:
$data = array(
'ModelName' => array(
'foo' => $foo
)
)
// prepare the model for adding a new entry
$this->ModelName->create();
// save the data
$this->ModelName->save($data);
If you want to update your data just use the same method without calling Model::create()
$data = array(
'ModelName' => array(
'id' => $id
'foo' => $foo
)
)
$this->ModelName->save($data);
See also: http://book.cakephp.org/2.0/en/models/saving-your-data.html#model-save-array-data-null-boolean-validate-true-array-fieldlist-array
Edit:
I guess this is what you're looking for:
$this->ModelName->id = $id;
if (!$this->ModelName->exists()) {
$this->ModelName->create();
}
$this->ModelName->save($data);