Cakephp 3 保存关联属于ToMany
Posted
技术标签:
【中文标题】Cakephp 3 保存关联属于ToMany【英文标题】:Cakephp 3 save associations belongsToMany 【发布时间】:2018-06-20 11:48:02 【问题描述】:我需要保存表单中的关联数据。表结构如下:
我有一些与 BelongsToMany 相关联的模型(例如用户与 Medias 和 MediasObjects 相关联的模型) 用户:id、email ... 书籍:id,标题... 等等……
媒体:id、文件 .... MediasObject:id、object_name、object_id、media_id
表单返回数据如下(编辑用户后):
$data = Array
(
[id] => 1
[email] => 'some@email.com'
..
[medias] => Array
(
[0] => Array
(
[id] = 17
)
)
)
我有用户 (id=1) 也有媒体 (id=17),现在我需要将关联数据保存到 MediasObject 中,如下所示:
Array(
[object_name] => 'Users',
[object_id] => 1,
[media_id] => 17
我不知道应该在哪里设置 'object_name' 值?
【问题讨论】:
【参考方案1】:您需要设置一个_joinData
属性。
$data = [
'id' => 1,
'media' => [
[
'id' => 1,
'_joinData' => [
'object_name' => 'Users'
]
]
]
];
见https://book.cakephp.org/3.0/en/orm/saving-data.html#saving-additional-data-to-the-join-table
【讨论】:
以上是关于Cakephp 3 保存关联属于ToMany的主要内容,如果未能解决你的问题,请参考以下文章