7

我见过人们使用这段代码,我试图理解它的作用,因为我在任何 codeigniter 文档或数据库类的源代码中都没有看到它。

$this->db->ar_orderby
4

4 回答 4

8

这是一个按列保存顺序的数组..

应该没有理由直接使用此属性。而是调用$this->db->order_by('column')which 自动附加到数组。

  • system/database/DB_active_rec.php在第 42 行定义
  • 附加到方法CI_DB_active_record::order_by第 856 行
  • 用于在CI_DB_active_record::_compile_select第 1781 行生成 SQL
于 2013-01-30T20:21:10.157 回答
3

以下面的方式使用它仍然有意义 -

if (!count($this->db->ar_orderby)) {
    $this->db->order_by($this->order_by );
}

它基本上意味着 - 如果在调用此方法时 db 库尚未设置订单,请使用它。防止两次调用“order by”。

于 2013-12-23T06:32:58.690 回答
3

你的意思是

http://phpxref.com/xref/codeigniter/system/drivers/DB_active_record.php.source.html#l781

它允许您指定顺序。

于 2013-01-30T20:12:44.697 回答
0

您可以替换这些行:

if (!count($this->db->ar_orderby)) {
    $this->db->order_by($this->order_by );
}

和:

if(!count($this->db->order_by($this->order_by))) {
    $this->db->order_by($this->order_by);
}
于 2016-04-20T19:19:02.947 回答