我拥有一位拥有并且属于许多相关艺术家的艺术家,在这个例子中,我想将麦当娜和她的2位相关艺术家雪儿和凯莉米洛保存在数据库中。CakePHP:在HABTM中保存数据的正确格式是什么
DB: 2表:艺术家(ID,姓名,创建)和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()中?
我不这么认为:http://book.cakephp.org/2.0/en/models/saving-your-data.html#model-saveassociated-array-data-null -array-options-array – 472084
感谢您的回答。这看起来很奇怪,但我试过了。结果是麦当娜被插入**艺术家**表格两次。凯莉和雪儿没有,也没有插入连接表。 – lasse
你有主要的ID,如果是的话,那些必须包括在内。 –