cakephp手动保存一对多
我有模型A,其中有许多模型B场景。我已按以下方式定义了从属关系:cakephp手动保存一对多,cakephp,Cakephp,我有模型A,其中有许多模型B场景。我已按以下方式定义了从属关系: class A extends AppModel { var $hasMany = array( 'B' => array( 'className' => 'A', 'foreignKey' => 'keyword_
class A extends AppModel {
var $hasMany = array(
'B' => array(
'className' => 'A',
'foreignKey' => 'keyword_id',
'dependent' => true
)
);
A类有以下列:
keyword
created
keyword_id
category_id
B类(表B)有以下列:
keyword
created
keyword_id
category_id
我的问题是,当我执行下面的代码时,我希望表B具有与关键字id相对应的关键字id和类别id
$data = array(
'A' => array(
'keyword' ( => 'zzzzz'
),
'B' => array(
3,4,5
)
);
$this->A->saveAll($data);
当我执行以下脚本时,表B中对应的关键字id只有“NUll”。是否还有其他需要更改的地方。我认为您的数据格式不正确。我认为它的格式应该更像这样:
$data = array(
0 => array(
'A' => array(
'keyword' => 'zzzzzz',
'created' => '',
),
'B' => array(
0 => array(
'category_id' => 3,
),
1 => array(
'category_id' => 4,
),
etc.,
),
),
etc.,
);
您应该有一个像user2076809建议的数据结构(顺便说一句,这个昵称不错!),如果您使用的是Cake 2.X,请使用saveAssociated方法,如下所示:
$this->A->saveAssociated($data);
请提供正确的型号名称,而不是“A”和“B”。它将提高可读性,并帮助我们更容易地诊断您的问题。嗨,马丁,A类是“关键字”。其中包含“关键字”、“已创建”列。B类是“关键字类别”,它存储关键字id和类别id。这不起作用。它没有插入表B(或关键字类别)中的行