无法保存数据,但消息已保存

时间:2018-08-01 03:02:00

标签: cakephp-3.0

我已经创建了Cake PHP 3,我想添加数据,但是当我单击“提交”按钮时,数据没有保存,但是消息显示数据已保存。我添加到两个不同的表中。当我尝试在一个表中添加数据时就可以了。

这是我的控制人

StoreController.php

public function add()
{
    $this->loadComponent('General');
    $setStatus = 1;
    $store = $this->Stores->newEntity();
    if ($this->request->is('post')) {
        // dd( $this->request->getData());exit;
        $connection = ConnectionManager::get('ora');
        $connection->begin();
        $store = $this->Stores->patchEntity($store, $this->request->getData());;

        $merchantTable = TableRegistry::get('MasterFile.Merchants');
        $merchant = $merchantTable->find()->where(['MERCHANT_CODE'=>$store->MERCHANT_CODE])->first();

        $store->MERCHANT_ID = $merchant->MERCHANT_ID;
        $store->CREATED_DATE = date("Y-m-d h:i:s");
        $store->LAST_UPDATED_DATE = date("Y-m-d h:i:s");
        $store->LAST_APPROVED_DATE = date("Y-m-d h:i:s");
        $store->LAST_VERSION_DATE = date("Y-m-d h:i:s");

        // $store->store_address->LINE1 = $store->LINE1;

        // Start - Controller Code to handle file uploading
        if(!empty($this->request->data['STORE_LOGO']['name']))
        {
            $file = $this->request->data['STORE_LOGO']; //put the data into a var for easy use

            $ext = substr(strtolower(strrchr($file['name'], '.')), 1); //get the extension
            $arr_ext = array('jpg', 'jpeg', 'png'); //set allowed extensions

            $fileName = $this->request->data['STORE_LOGO']['name'];
            $uploadPath = WWW_ROOT.'img/store_logo/';
            $uploadFile = $uploadPath.$fileName;

            //only process if the extension is valid
            if(in_array($ext, $arr_ext))
            {
                if(move_uploaded_file($this->request->data['STORE_LOGO']['tmp_name'],$uploadFile))
                {
                    $store['STORE_LOGO'] = $uploadFile;
                }
            }


        }

        if(!empty($this->request->data['BACKGROUND_PICTURE']['name']))
        {
            $fileName = $this->request->data['BACKGROUND_PICTURE']['name'];
            $uploadPath = WWW_ROOT.'img/background_picture/';
            $uploadFile = $uploadPath.$fileName;

            if(move_uploaded_file($this->request->data['BACKGROUND_PICTURE']['tmp_name'],$uploadFile))
                {
                    $store['BACKGROUND_PICTURE'] = $uploadFile;
                }
        }

        // now do the save
        if ($this->Stores->save($store)) {
            $setStatus = 1;
            $message = 'The store has been saved.';

            if($setStatus == 1){
                $this->loadComponent('General');
                $this->loadModel('MasterFile.Addresss');
                $setStatus = 1;
                $address = $this->Addresss->newEntity();
                //dd($this->request->data);

                $this->request->data['Address']['LINE1'] = $this->request->data['LINE1'];
                $this->request->data['Address']['LINE2'] = $this->request->data['LINE2'];
                $this->request->data['Address']['LINE3'] = $this->request->data['LINE3'];

                //dd($this->request->data['Address']);

                $connection = ConnectionManager::get('ora');
                $connection->begin();
                $address = $this->Addresss->patchEntity($address, $this->request->data['Address']);

                // dd($address);
                // now do the save
                if ($this->Addresss->save($address)) {
                    $setStatus = 1;
                    $message = 'The store has been saved.';
                }else{
                    $setStatus = 0;
                    $message = 'The store could not be saved. Please, try again.';
                }

                $this->Flash->set(__($message));

            }
        }else{
            $setStatus = 0;
            $message = 'The store could not be saved. Please, try again.';
        }

        $this->Flash->set(__($message));

        if($setStatus){
            $connection->commit();
            return $this->redirect(['action' => 'index']);
        }else {
            $connection->rollback();
        }
    }

    $this->set(compact('store'));
    $this->set('_serialize', ['store']);

}

我该怎么办? 谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

尝试调试实体:

if ($this->Stores->save($store)) {
    debug($store);
    ...