我见过人们使用这段代码,我试图理解它的作用,因为我在任何 codeigniter 文档或数据库类的源代码中都没有看到它。
$this->db->ar_orderby
我见过人们使用这段代码,我试图理解它的作用,因为我在任何 codeigniter 文档或数据库类的源代码中都没有看到它。
$this->db->ar_orderby
这是一个按列保存顺序的数组..
应该没有理由直接使用此属性。而是调用$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以下面的方式使用它仍然有意义 -
if (!count($this->db->ar_orderby)) {
$this->db->order_by($this->order_by );
}
它基本上意味着 - 如果在调用此方法时 db 库尚未设置订单,请使用它。防止两次调用“order by”。
你的意思是
http://phpxref.com/xref/codeigniter/system/drivers/DB_active_record.php.source.html#l781
它允许您指定顺序。
您可以替换这些行:
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);
}