cakephp手动保存一到多个

时间:2013-09-23 22:25:27

标签: cakephp

我有模型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具有对应于keyword_id的keyword_id和category_id。

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

当我执行以下操作时,脚本表B仅对相应的keyword_id具有“NUll”。还有什么我需要做的不同。

2 个答案:

答案 0 :(得分:0)

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

$data = array(
     0  => array(
         'A' => array(
               'keyword' => 'zzzzzz',
               'created' => '',
          ),
         'B' => array(
              0 => array(
                  'category_id' => 3,
              ),
              1 => array(
                  'category_id' => 4,
              ),
              etc.,
          ),
     ),
     etc.,
);

答案 1 :(得分:0)

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

$this->A->saveAssociated($data);