我使用cakephp可以检索相关模型
$this->Order->find('first',
array(
'conditions'=>$conditions,
'contain' =>
array(
'OrderItem'=>array(
'Item'=>
array(
'order' => array('Item.item_number ASC')
)
),
'Location','Campaign', "Customer")
)
);
我正在使用它来生成发票,并希望按item_number排序这些项目。
但出于某种原因,排序无效。
有什么想法吗?
生成的SQL很长。但是你可以从这个片段看到order by
在错误查询中的问题 - 即在ID中选择的项目 - 只有一个项目。 (并且订单中的每个项目都有单独的查询。)
SELECT `OrderItem`.`order_id`, `OrderItem`.`item_id`,
`OrderItem`.`quantity`, `OrderItem`.`id` FROM `order_items` AS `OrderItem` WHERE
`OrderItem`.`order_id` = (3144)
和
SELECT `Item`.`id`, `Item`.`campaign_id`, `Item`.`item_number`, `Item`.`description`,
`Item`.`order_unit`, `Item`.`order_price`, `Item`.`maxQuantity`, `Item`.`sale_unit`,
`Item`.`sale_price`, `Item`.`approx`, `Item`.`min_weight`, `Item`.`max_weight`,
`Item`.`avail`, `Item`.`filename` FROM `items` AS `Item` WHERE `Item`.`id` = 122
ORDER BY `Item`.`item_number` ASC
我希望看到第一个查询执行inner join Items.id on OrderItem.item_id
并按item_number对该查询进行排序,但我看到containable
为每个相关模型生成单独的查询。
答案 0 :(得分:1)
确保您已添加:
var $actsAs = array('Containable');
到模型,或
$this->Order->Behaviors->attach('Containable');
采取行动。如果你已经有这个,那么你的帖子就不清楚了。
另外你应该详细说明isn't working
- 什么不是?出乎意料的结果?什么都没有?
答案 1 :(得分:0)
您可能想尝试使用Linkable: