Cakephp add function if id exists edit else create

泪湿孤枕 提交于 2019-12-02 08:48:06
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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!