我有一个非常简单的关系模型设置。使用$this->model->find('all',$params)
时,结果不会返回完整的关系数据集。我把头发拉出来了。
这是我的表格设置:
表qs_skus:
id (AI, PK)
sku_name
profile
...
表net_lengths_in_skus:
id (AI,PK)
quick_ship_skus_id
net_lengths_id
表net_lengths
id (AI,PK)
name
模型的配置方式有:
$hasMany=array('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
,但它甚至都没有被查询。
有什么想法吗?
答案 0 :(得分:0)
你在这里有多对多的关系。这意味着名为hasAndBelongsToMany的关联。
如果你使用Cake 2.x,你应该有这样的东西:
--name-status
Show only names and status of changed files. See the description of the
--diff-filter option on what the status letters mean.
您也应该执行与NetLength模型类似的操作。