我有一个需要post
并使用cakePHP 3保存的JSON对象。
首先,我有4张桌子,如下图所示
假设供应商购买了一些产品,因此我需要填写一个purchase
记录和关联表products_purchases
,其中将包含在那个purchase
期间购买的产品的所有记录。
我将使用一些JavaScript动态生成一些字段,以便能够在该products
中用数量,价格..填充多个purchase
,然后将所有数据存储在JSON object
中。
因此,在add.ctp
的purchase
视图中,我将使用这个JSON object
作为示例:
$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']);
}
非常感谢你!
最佳答案
您必须管理与模型的正确关联。请访问下面的链接,您可以在其中查看如何保存关联数据。
https://book.cakephp.org/3.0/en/orm/saving-data.html
关于javascript - 使用cakePHP 3将JSON对象另存为具有关联的实体,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42147587/