仅在一个函数中禁用belongssto数组的顺序

时间:2014-03-03 09:45:43

标签: sql model sql-order-by cakephp-1.3

我的gal_provider模型中有一个belongsTo数组,如下所示:

var $belongsTo = array(
        'User' => array(
            'className' => 'User',
            'foreignKey' => 'user_id',
            'conditions' => '',
            'fields' => '',
            'order' => 'User.name'
        ),
 )

模型gal_provider中包含的大多数功能都需要根据用户名对结果进行排序。但是有一个名为recevtProviders()的函数不需要这个命令。所以我试过

$order = "";
$gal_providers = $this->find("all",array("conditions"=>$conditions,"recursive"=>$recursive,
            "fields"=>$fields,"limit"=>$limit,"order"=>$order));

BUt生成的查询仍显示ORDER BY "User.name"。如何仅从此功能中禁用此order

1 个答案:

答案 0 :(得分:0)

我相信你传递的订单参数只会影响gal_provider模型。在您的查找呼叫之前尝试此操作,以从相关模型中删除订单:

$this->belongsTo['User']['order'] = '';

此外,如果您不使用它,则Containable是一种非常有用的行为。使用可包含的,可以禁用用户模型上的顺序,如下所示:

$this->find("all",array("conditions"=>$conditions,"recursive"=>$recursive,
            "fields"=>$fields,"limit"=>$limit,"order"=>$order,"contain" => array("User" => array("order" => ""))));