【问题标题】:Disabling order from belongsto array in just one function仅在一个函数中禁用属于数组的顺序
【发布时间】:2014-04-04 07:07:43
【问题描述】:

我的 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));

但是生成的查询仍然显示ORDER BY "User.name"。如何仅通过此功能禁用此order

【问题讨论】:

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


    【解决方案1】:

    我相信您传递的 order 参数只会影响 gal_provider 模型。在 find 调用之前尝试此操作以从关联模型中删除订单:

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

    此外,如果您不使用它,Containable 是一种非常有用的行为。使用可包含,用户模型上的订单可以像这样被禁用:

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

    【讨论】:

      猜你喜欢
      • 2020-11-07
      • 1970-01-01
      • 1970-01-01
      • 2011-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-25
      相关资源
      最近更新 更多