作者tkdmaf (皮皮快跑)
看板PHP
标题[心得] codeigniter的A_RECORD,where_in的问题
时间Sat Jun 16 13:38:48 2012
首先如果会使用物件的回传串连法:
例:
$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
1F:推 MOONRAKER:赞,原来还有这层 06/16 20:27
2F:推 j100002ben:不过我自己应该还是会去改核心,因为CI的授权条款我习 06/16 23:45
3F:→ j100002ben:惯把system和app完全分开,专案Code只包括app这个部份 06/16 23:46
4F:→ j100002ben:所以改Core对我来说和SVN开Branch差不多..整个资料夹 06/16 23:47
5F:→ j100002ben:复制换个名字XD 06/16 23:47
6F:→ j100002ben:这样也很好管理CI升级的状况.. 06/16 23:47