TP5之order()的自定义问题


用TP5的Model操作数据库时,常常会遇到以数组为参数进行查询,但会发现查询结果往往是自动按照数组元素的大小顺序排列的(一般都是由小到大),这种查询得到的结果往往不是我们所需要的,
我们有时会希望查询结果也按照数组元素的排列顺序进行排序,以此就需要对order()进行自定义了,具体操作如下:
1丶先使用implode()将数组转化为字符串(*注意第一个参数应为:",",作用将数组元素以,逗号连接,第二个参数是查询条件)
列:
$str = implode(",", $id);
2丶编写查询语句,并使用field()对order()方法进行自定义
列:
$product=self::where("id","in",$str)->order("field(id,$str)")->select();

*注意:$id为一维数组,implode(",",$id)函数将数组id转化为字符串$str,order()里的'field'只接收字符串.
当然这些都只是我的一些浅显理解,不足之处还望指出


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM