$View = D('UserView');
$View->where($map)->order($order)->select();
當order傳入數組的時候會出現錯誤。
以前用2.0的時候我本身修正了,也反應給官方了,如今用3.0這個錯誤還在。
PS: 其實這樣的問題在裏面還有不少,可能流年也是力不從心了。改進,修復,產生新bug, 原有bug死灰復燃。
再次向官方反饋一下。
修正方法以下:
ViewModel.class.php
protected function checkOrder($order='') {
if(!is_array($order) && $order) { //修改此行
$orders = explode(',',$order);
$_order = array();
foreach ($orders as $order){
$array = explode(' ',$order);
$field = $array[0];
$sort = isset($array[1])?$array[1]:'ASC';
// 解析成視圖字段
foreach ($this->viewFields as $name=>$val){
$k = isset($val['_as'])?$val['_as']:$name;
$val = $this->_checkFields($name,$val);
if(false !== $_field = array_search($field,$val,true)) {
// 存在視圖字段
$field = is_numeric($_field)?$k.'.'.$field:$k.'.'.$_field;
break;
}
}
$_order[] = $field.' '.$sort;
}
$order = implode(',',$_order);
}
return $order;
}