首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CakePHP:在HABTM中保存数据的正确格式是什么?

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

Stack Overflow用户
提问于 2012-11-02 11:05:51
回答 2查看 943关注 0票数 2

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

DB:2表:艺术家(id,name,created)和artists_related (id,artist_id,related_id)

建立模型关系:

代码语言:javascript
运行
复制
<?php
class Artist extends AppModel {
    public $hasAndBelongsToMany = array(
        'Related' =>
            array(
                'className' => 'Artist',
                'joinTable' => 'artists_related',
                'associationForeignKey' => 'related_id',
                'unique' => 'keepExisting'
            )
        );

我试着像这样保存数据:

代码语言:javascript
运行
复制
    $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()中?

EN

回答 2

Stack Overflow用户

发布于 2013-02-01 03:20:56

据我所知,与相关的艺术家必须包含与相关的对象,该对象具有与相关的密钥和一些artist_id。这是一个例子:

代码语言:javascript
运行
复制
$test_data = array(
    'Artist' => array(
        'name' => 'Madonna'
     ),
    'Related' => array(
         'Related' => array(
             0 => '1',
             1 => '2'
         )
     )
);
票数 2
EN

Stack Overflow用户

发布于 2012-11-02 12:49:39

您的数据必须采用这种格式。

代码语言:javascript
运行
复制
Array
(
[0] => Array
    (
        ['Artist'] => Array
            (
                [name] => 'Madonna'
            )
        ['Related'] => Array
            (
                [name] => 'Kylie Minogue'
            )
    )
[1] => Array
    (
        ['Artist'] => Array
            (
                [name] => 'Madonna'
            )
        ['Related'] => Array
            (
                [name] => 'Cher'
            )
    )
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13193987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档