私は人々がこのコードを使用しているのを見てきましたが、codeigniterのドキュメントやデータベースクラスのソースコードには表示されていないため、その機能を理解しようとしています。
$this->db->ar_orderby
私は人々がこのコードを使用しているのを見てきましたが、codeigniterのドキュメントやデータベースクラスのソースコードには表示されていないため、その機能を理解しようとしています。
$this->db->ar_orderby
これは、列ごとの順序を保持する配列です。
このプロパティを直接使用する理由はありません。代わり$this->db->order_by('column')
に、配列に自動的に追加するを呼び出します。
system/database/DB_active_rec.php
42行目で定義CI_DB_active_record::order_by
メソッドの行856 に追加CI_DB_active_record::_compile_select
1781行目でSQLを生成するために使用もしかして
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 );
}
基本的には、このメソッドが呼び出されたときにdbライブラリによって順序がまだ設定されていない場合は、これを使用します。「orderby」が2回呼び出されないようにします。
これらの行を置き換えることができます。
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);
}