用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'只接收字符串.
當然這些都只是我的一些淺顯理解,不足之處還望指出