I\'m using cakephp 2 in my controller add function, I want to edit the data if the id exists, if not exists create.
This is my code in add function:
pub
public function add () {
if(!$this->request->data){
throw new NotFoundException();
}
$googleCategory = $this->request->data;
foreach ($googleCategory as $key => $value) {
if(empty($value['category'])){
unset($value);
}
$conditions = array (
'AccountShopMeta.shop_id' => $value['shop_id'],
'AccountShopMeta.name' => $value['category'],
'AccountShopMeta.value' => $value['url_key']
);
$accountShopMeta = $this ->AccountShopMeta->find('first', $conditions);
if(empty($accountShopMeta)) {
//ADD
$this->AccountShopMeta->create();
} else {
//EDIT
$this->AccountShopMeta->id = $accountShopMeta['AccountShopMeta']['id'];
}
$data['shop_id'] = $value['shop_id'];
$data['name'] = $value['category'];
$data['value'] = $value['url_key'];
$data['tag'] = '';
if($this->AccountShopMeta->save($data)) {
//This part shoud be out of loop (foreach)
$account_shop_meta = $this->AccountShopMeta->read();
$this->set($account_shop_meta);
$this->set('_serialize', array_keys($account_shop_meta));
}
}
}
More info Saving Your Data