gpt4 book ai didi

php - CakePHP:在 HABTM 中保存数据的正确格式是什么

转载 作者:行者123 更新时间:2023-11-29 02:31:01 24 4
gpt4 key购买 nike

我有一位艺术家拥有并属于许多相关艺术家,在这个例子中我想在数据库中保存麦当娜和她的 2 位相关艺术家雪儿和凯莉米洛。

数据库:2 个表: artists (id, name, created) 和 artists_related (id, artist_id, related_id)

模型关系设置:

<?php
class Artist extends AppModel {
public $hasAndBelongsToMany = array(
'Related' =>
array(
'className' => 'Artist',
'joinTable' => 'artists_related',
'associationForeignKey' => 'related_id',
'unique' => 'keepExisting'
)
);

我正在尝试像这样保存数据:

    $test_data = array(
'Artist' => array(
'name' => 'Madonna'
),
'Related' => array(
0 => array(
'name' => 'Kylie Minogue'
),
1 => array(
'name' => 'Cher'
)
)
);

$result = $this->saveAll($test_data, array('deep' => true));

发生的情况是只有 Madonna 保存在 artists 表中,两个相关的艺术家没有保存,连接表中什么也没有保存。

应该如何格式化数据数组以实现此目的?还是我需要先保存 Madonna,获取 ID,然后将所有相关艺术家保存在不同的 saveAll() 中?

最佳答案

据我所知,相关艺术家 必须包含 Related 对象,这些对象具有键 Related 和一些 artist_id。这是例子:

$test_data = array(
'Artist' => array(
'name' => 'Madonna'
),
'Related' => array(
'Related' => array(
0 => '1',
1 => '2'
)
)
);

关于php - CakePHP:在 HABTM 中保存数据的正确格式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13193987/

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