2017-02-09 23 views
0

У меня есть объект JSON, что мне нужно post & сохранить его с помощью CakePHP 3.Сохранить JSON объекта в качестве объекта с ассоциациями с помощью CakePHP 3

Первой у меня есть 4 таблицы, как в этом образе TABLES

Скажет поставщик покупает некоторые продукты, поэтому мне нужно заполнить запись purchase и таблицу ассоциаций products_purchases, которая будет содержать все записи продуктов, купленных за этот номер purchase.

Я буду использовать некоторый JavaScript для динамического генерации некоторых полей, чтобы иметь возможность заполнить несколько products количествами, ценами .. во время этого purchase, а затем сохранить все данные в JSON object.

Таким образом, в add.ctp зрения purchase, я буду иметь это JSON object для exmaple:

$data = { 
    "reference": "V656413", 
    "supplier_id": 31, 
    "payment_id": 5, 
    "products_purchases": [ 
     { 
      "product_id": 5566, 
      "purchase_id" 999, 
      "quantity": 4, 
      "price": 899 
     }, 
     { 
      "product_id": 7865, 
      "purchase_id" 999, 
      "quantity": 6, 
      "price": 54 
     },{ 
      "product_id": 434, 
      "purchase_id" 999, 
      "quantity": 8, 
      "price": 22 
     }, 
    ] 
} 

Как POST этот объект с помощью form в файле add.ctp, и может, как я могу справиться с этим и сохранить это как предприятие с его ассоциациями в PurchasesController?

add метод в контроллере на данный момент выглядит следующим образом:

public function add() 
    { 
     $purchase = $this->Purchases->newEntity(); 
     if ($this->request->is('post')) { 
      $purchase = $this->Purchases->patchEntity($purchase, $this->request->data); 


      if ($this->Purchases->save($purchase)) { 
       $this->Flash->success(__('The purchase has been saved.')); 

       return $this->redirect(['action' => 'index']); 
      } else { 
       $this->Flash->error(__('The purchase could not be saved. Please, try again.')); 
      } 
     } 
     $this->set('_serialize', ['purchase']); 
    } 

Большое спасибо!

ответ

1

Вы должны управлять соответствующими ассоциациями с вашими моделями. посетите ссылку ниже, где вы можете увидеть, как сохранять данные с помощью ассоциаций.

https://book.cakephp.org/3.0/en/orm/saving-data.html

+0

Я не понимаю, как я могу отправлять и сохранять JSON, как это. – dwix

+1

Вам необходимо декодировать данные json, а затем отправить на функцию сохранения. – Ravendra

 Смежные вопросы

  • Нет связанных вопросов^_^