Cakephp add function if id exists edit else create

前端 未结 1 1982
终归单人心
终归单人心 2021-01-28 14:20

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         


        
相关标签:
1条回答
  • 2021-01-28 14:25
    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

    0 讨论(0)
提交回复
热议问题