我有一个非常简单的关系模型设置 . 使用 $this->model->find('all',$params)
时,结果不会返回完整的关系数据集 . 我把头发拉到这里 .
这是我的表格设置:
Table qs_skus:
id (AI, PK)
sku_name
profile
...
Table net_lengths_in_skus:
id (AI,PK)
quick_ship_skus_id
net_lengths_id
Table net_lengths
id (AI,PK)
name
模型的配置方式是:
-
型号QuickShipSku
$hasMany=array('NetLengthsInSku')
-
型号NetLengthsInSku
$hasOne='NetLength'
-
所有型号都有
$actAs = array('Containable')
执行以下操作时,我只查询第一个关系,最后一个关系被完全忽略:
$model = $this->QuickShipSku->find('all',
array(
'contain' => array(
'NetLengthsInSku' => array('NetLength')
)
);
输出:
Array
(
[0] => Array
(
[QuickShipSku] => Array
(
[id] => 3
[sku_name] => 1112-8
[product_name] => Product A
[sku_specie_id] => 1
[members_ft] => 8
[profile] => Profile Description
)
[NetLengthsInSku] => Array
(
[0] => Array
(
[id] => 10
[quick_ship_skus_id] => 3
[quick_ship_net_length_id] => 1
)
)
)
)
对于每个 NetLengthsInSku
应该有一个 NetLength
,但它甚至都没有被查询 .
有任何想法吗?
1 回答
你在这里有多对多的关系 . 这意味着名为hasAndBelongsToMany的关联 .
如果你使用Cake 2.x,你应该有这样的东西:
您也应该执行与NetLength模型类似的操作 .