【问题标题】:CakePHP (1.3) HABTM on the same model saveAll() not working同一模型上的 CakePHP (1.3) HABTM saveAll() 不工作
【发布时间】:2012-10-30 23:17:10
【问题描述】:

这看起来很简单,但我的头撞到了墙上。

我有一个简单的 HABTM 关系(艺术家有许多艺术家),我正在尝试保存一些数据。

我有两张桌子: 艺术家:(id、名称、创建、修改) artists_related:(id、artists_id、related_id)

这是我的代码的样子,models/artist.php

class Artist extends AppModel {
var $name = 'Artist';
var $hasAndBelongsToMany = array(        
    'Related' => array(            
        'className'     => 'Artist',
        'joinTable'     => 'artists_related',         
        'foreignKey'    => 'artist_id',
        'associationForeignKey' => 'related_id'
    )   
);  

function saveArtist($slug) {

    $data = array(
        'Artist' => array(
            'name' => 'Alicia Keys'
        ),
        'Related' => array(
            array(
                'name' => 'Mariah Carey'
            ),
            array(
                'name' => 'Beyoncé'
            )
        )
    );
$result = $this->saveAll($data);

saveAll() 的结果是 1 行(Alicia Keys)被插入到艺术家表中。相关艺术家没有,并且没有任何内容插入到连接表中。

我做错了什么?

【问题讨论】:

    标签: php mysql cakephp has-and-belongs-to-many cakephp-model


    【解决方案1】:

    我没有得到你想要做什么,一旦通过这个链接这可能会有所帮助

    http://book.cakephp.org/1.3/en/view/1034/Saving-Related-Model-Data-HABTM

    【讨论】:

    • 感谢您的回答。我正在尝试将一位艺术家及其相关艺术家保存在 artists 表中。以及 artists_related 表中的关系。它与页面中的示例不同,因为它不在 2 个不同的模型之间,而是对同一模型的习惯。
    • 和cookbook一样,您可以通过选择下拉菜单选择其他艺术家,$this->set('artists', $this->Artist->find('list'));并在视图中 $this->Form->input('artists');
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 2014-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多