Cakephp 3保存关联属于ToToMany

时间:2018-06-20 11:48:03

标签: php associations cakephp-3.x

我需要从表单保存我的关联数据。表格结构如下:

我有一些与BelongsToMany相关的模型(例如与与MediasObjects的媒体相关联的Users的模型) 用户: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 个答案:

答案 0 :(得分:0)

您需要设置一个_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