Cakephp可包含订单不起作用

Cakephp可包含订单不起作用,cakephp,Cakephp,我正在使用cakephp containable检索相关模型 $this->Order->find('first', array( 'conditions'=>$conditions, 'contain' => array( 'OrderItem'=>array( 'Item'=>

我正在使用cakephp containable检索相关模型

$this->Order->find('first',
      array(
          'conditions'=>$conditions,
          'contain' => 
              array(
                 'OrderItem'=>array(
                     'Item'=>
                         array(
                            'order' => array('Item.item_number ASC')
                          )
                   ), 
             'Location','Campaign', "Customer")     
            )
       );
我正在使用它生成一张发票,并希望按项目编号对项目进行排序

但由于某种原因,这种方法不起作用

有什么想法吗

生成的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)


我希望看到的是,第一个查询在OrderItem.item\u id上执行内部联接Items.id,并按item\u编号对该查询进行排序,但我看到Containeable会为每个相关模型生成单独的查询。

请确保已添加:

var$actsAs=数组“可包含”

符合模型,或

$this->Order->Behaviors->attach'Containable'

行动。从你的帖子中还不清楚你是否已经有了这个


此外,你还应该详细说明什么是不起作用的——什么是不起作用的?意外的结果?什么都没有?

确保您已添加:

var$actsAs=数组“可包含”

符合模型,或

$this->Order->Behaviors->attach'Containable'

行动。从你的帖子中还不清楚你是否已经有了这个


此外,你还应该详细说明什么是不起作用的——什么是不起作用的?意外的结果?什么都没有?

您可能想试试Linkable:


您可能希望尝试使用Linkable:


我只是创建了一个usort函数来对OrderItems进行排序…..我只是创建了一个usort函数来对OrderItems进行排序…..我正在创建一个发票,并且希望按照items模型中的item_编号对项目进行排序。我得到了所有的数据,所以containable可以工作,但是OrderItems的排序没有按预期工作。我刚刚编写了一个usort函数来对订单项进行排序。。。感谢您的输入…@josephtikva如果设置了recursive,它将返回额外的模型,因此您可能认为containable正在工作,但事实并非如此。另外,提供生成的SQL以及模型的完整代码可能会有所帮助。@Ross我在模型中有这些代码。我正在创建发票,希望项目按照项目模型中的项目编号进行排序。我得到了所有的数据,所以containable可以工作,但是OrderItems的排序没有按预期工作。我刚刚编写了一个usort函数来对订单项进行排序。。。感谢您的输入…@josephtikva如果设置了recursive,它将返回额外的模型,因此您可能认为containable正在工作,但事实并非如此。另外,给我们生成的SQL以及模型的完整代码可能会有帮助。@Ross我在模型中有这些。
  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