0

我有模型 A,它有许多模型 B 场景。我通过以下方式定义了依赖关系:

class A extends AppModel {
    var $hasMany = array(
                        'B' => array(
                                    'className' => 'A',
                                    'foreignKey' => 'keyword_id',
                                    'dependent' => true
                                    )
                    );

A类有以下列:

keyword
created

B类(表B)有以下列:

keyword_id
category_id

我的问题是,当我执行下面的代码时,我希望表 B 的关键字 ID 和类别 ID 对应于关键字 ID。

    $data = array(
                   'A' => array(
                    'keyword' ( => 'zzzzz'
                            ),
                        'B' => array(
                                 3,4,5
                                 )
                        );
        $this->A->saveAll($data);

当我执行以下脚本时,表 B 中对应的keyword_id 只有“NUll”。还有什么我需要做的不同的事情吗?

4

2 回答 2

0

你应该有一个像 user2076809 建议的数据结构(顺便说一下好昵称!),如果你使用的是 Cake 2.X,请使用 saveAssociated 方法,如下所示:

$this->A->saveAssociated($data);
于 2013-09-24T20:42:04.500 回答
0

我认为您的数据格式不正确。我相信它的格式应该更像这样:

$data = array(
     0  => array(
         'A' => array(
               'keyword' => 'zzzzzz',
               'created' => '',
          ),
         'B' => array(
              0 => array(
                  'category_id' => 3,
              ),
              1 => array(
                  'category_id' => 4,
              ),
              etc.,
          ),
     ),
     etc.,
);
于 2013-09-24T15:55:02.183 回答