CakePHP 4 ->如何保存加入记录

qoefvg9y  于 2022-11-11  发布在  PHP
关注(0)|答案(1)|浏览(99)

我正在开发一个CakePHP 4应用程序,并在CategoriesProducts之间建立了一个连接表,名为CategoriesProducts
当我创建一个名为categories_products的属性的新产品时,该属性包含一个如下所示的数组:

[
    [
        'category_id' => `x`
    ]
]

应该保存到连接表中的是带有新生成的product_idcategory_id
数据不会保存到连接表中。
在saveMany函数中,我传递了:

[
    'associated' => [
        'Categories'
    ]
]

当我尝试添加关联的=〉CategoriesProducts时,我得到一个错误,即关系未定义。
有人能告诉我如何填充连接表吗?我已经设置了数据库,并使用CakePHP助手烘焙了模型。
提前感谢!

zfycwa2u

zfycwa2u1#

使用默认关联保存过程,您无需直接为联接表添加数据,而是使用目标关联属性并提供要链接的记录的主键。
因此,在您的情况下,可能是categories,例如,用于修补/创建实体的数据的结构如下所示,其中id是您要与新产品关联的现有类别的主键:

[
    // ...
    'categories' => [
        [
            'id' => 123,
        ],
    ],
]

然后,ORM将自动创建正确的连接表记录。
另请参阅

*Cookbook〉数据库访问和ORM〉保存数据〉转换属于多个数据

相关问题