我有一个艺术家,拥有和属于许多相关艺术家,在这个例子中,我想保存麦当娜和她的两个相关艺术家雪儿和凯莉米洛在数据库中。
DB:2表:艺术家(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));结果是,只有麦当娜保存在艺术家表中,两个相关的艺术家没有保存,连接表中没有保存任何东西。
如何对数据数组进行格式化以实现这一点?还是我需要先保存麦当娜,得到id,然后将所有相关的艺术家保存在不同的saveAll()中?
发布于 2013-02-01 03:20:56
据我所知,与相关的艺术家必须包含与相关的对象,该对象具有与相关的密钥和一些artist_id。这是一个例子:
$test_data = array(
'Artist' => array(
'name' => 'Madonna'
),
'Related' => array(
'Related' => array(
0 => '1',
1 => '2'
)
)
);发布于 2012-11-02 12:49:39
您的数据必须采用这种格式。
Array
(
[0] => Array
(
['Artist'] => Array
(
[name] => 'Madonna'
)
['Related'] => Array
(
[name] => 'Kylie Minogue'
)
)
[1] => Array
(
['Artist'] => Array
(
[name] => 'Madonna'
)
['Related'] => Array
(
[name] => 'Cher'
)
)
)https://stackoverflow.com/questions/13193987
复制相似问题