[心得] codeigniter的A_RECORD,where_in的問題

看板PHP作者 (皮皮快跑)時間13年前 (2012/06/16 13:38), 編輯推噓2(204)
留言6則, 2人參與, 最新討論串1/1
首先如果會使用物件的回傳串連法: 例: $this->db->where('id',$id)->get('user'); 如果你有這種習慣的在使用where_in時請注意。 where_in()、where_not_in() 他們的內部私有成員判斷當參數1和參數2均為無值時。 他回傳只有下return; 而非return $this; 這會導致如果你的第二參數是屬於自動給值的情形下。 萬一無值時就會導致物件無法回傳。 從那之後開始的所有串連寫法都會出錯。 解決方法有三: 1、本來就不使用串連法的不會有這種問題。 2、在給值之前,先自行判斷是否為空值,來避開這個問題。 3、如果你覺得ok,其實你可以考慮去核心把return $this加回去。 第3點我加過測試雖然無誤,但在不擅自改核心的情形下我又還原了他。 然後我是採取第2點的做法來避開無值造成的結果。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.180.97.168

06/16 20:27, , 1F
贊,原來還有這層
06/16 20:27, 1F

06/16 23:45, , 2F
不過我自己應該還是會去改核心,因為CI的授權條款我習
06/16 23:45, 2F

06/16 23:46, , 3F
慣把system和app完全分開,專案Code只包括app這個部份
06/16 23:46, 3F

06/16 23:47, , 4F
所以改Core對我來說和SVN開Branch差不多..整個資料夾
06/16 23:47, 4F

06/16 23:47, , 5F
複製換個名字XD
06/16 23:47, 5F

06/16 23:47, , 6F
這樣也很好管理CI升級的狀況..
06/16 23:47, 6F
文章代碼(AID): #1Ft1liqc (PHP)
文章代碼(AID): #1Ft1liqc (PHP)