update thinkphp/library/think/model.php

执行更加严格的order排序输入,避免$field=''时产生ORDER BY '' 的问题
当输入$field=''或$field=array();时直接忽略.
This commit is contained in:
liuzhaowei55
2015-12-16 19:39:41 +08:00
parent 813b394945
commit ffa9c76cc6

View File

@@ -1304,16 +1304,14 @@ class Model
* @param string $order 排序 * @param string $order 排序
* @return Model * @return Model
*/ */
public function order($field, $order = '') public function order($field, $order = null)
{ {
if (is_array($field)) { if (is_string($field) && !empty($field) && is_null($order)) {
$this->options['order'][] = $field;
} elseif (is_string($field) && !empty($field) && is_string($order)) {
$this->options['order'][$field] = $order;
} elseif (is_array($field) && !empty($field)) {
$this->options['order'] = $field; $this->options['order'] = $field;
} else {
if (!empty($order)) {
$this->options['order'][$field] = $order;
} else {
$this->options['order'][] = $field;
}
} }
return $this; return $this;
} }