gpt4 book ai didi

php - Yii2:Restful API 创建和更新关系

转载 作者:行者123 更新时间:2023-12-05 06:45:00 26 4
gpt4 key购买 nike

我的RESTful API 需要存储来自 JSON POST/PUT 请求的关系数据:

Address-table 通过表 addresscategory_assignment 有很多类别:

public function getAddresscategories() 
{
return $this->hasMany(TblAddresscategory::className(), ['id' => 'addresscategory_id'])
->viaTable('tbl_addresscategory_assignment', ['address_id' => 'id']);
}

读取和保存关系数据的最佳方式是什么?

Yii2 仅在 GET 请求中支持关系 REST,在 POST/PUT 中不支持。

通过 REST PUT 传入的 Address-JSON:

{
"id": 1,
"name": "Miller",

"addresscategories": [
{
"id": 9,
"categories": "customer"
},
{
"id": 10,
"gruppe": "reseller"
}
]
}

addresscategorys已经存在,我只需要读取关系并将它们存储到tbl_addresscategory_assignment

最佳答案

一种方法是将 EVENT_AFTER_INSERT 的事件记录事件附加到要在其上创建新条目的模型。然后,从post/put中插入数据后,就可以根据刚刚插入的模型的ID创建赋值关系了。

事件允许您在不破坏内置 REST url 结构的情况下处理数据

这是一个不知道表结构的快速示例...

public function init()
{
$this->on(ActiveRecord::EVENT_AFTER_INSERT, function ($event) {

// Category ID just created
$firstid = $event->sender->id;

// Whatever the second ID is
$secondid = 999;

$assignment = new CategoryAssignment;
$assignment->setAttribute('firstid', $firstid);
$assignment->setAttribute('secondid', $secondid);
$assignment->save();
}
}

关于php - Yii2:Restful API 创建和更新关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26908131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com