改进Query类

This commit is contained in:
thinkphp
2017-05-20 23:22:23 +08:00
parent 24ae4b9042
commit 7deea9dd07
2 changed files with 10 additions and 10 deletions

View File

@@ -88,7 +88,7 @@ abstract class Builder
} }
// 获取绑定信息 // 获取绑定信息
$bind = $this->query->getFieldsBind($options); $bind = $this->query->getFieldsBind($options['table']);
if ('*' == $options['field']) { if ('*' == $options['field']) {
$fields = array_keys($bind); $fields = array_keys($bind);
} else { } else {
@@ -226,7 +226,7 @@ abstract class Builder
// 附加软删除条件 // 附加软删除条件
list($field, $condition) = $options['soft_delete']; list($field, $condition) = $options['soft_delete'];
$binds = $this->query->getFieldsBind($options); $binds = $this->query->getFieldsBind($options['table']);
$whereStr = $whereStr ? '( ' . $whereStr . ' ) AND ' : ''; $whereStr = $whereStr ? '( ' . $whereStr . ' ) AND ' : '';
$whereStr = $whereStr . $this->parseWhereItem($field, $condition, '', $options, $binds); $whereStr = $whereStr . $this->parseWhereItem($field, $condition, '', $options, $binds);
} }
@@ -251,7 +251,7 @@ abstract class Builder
} }
$whereStr = ''; $whereStr = '';
$binds = $this->query->getFieldsBind($options); $binds = $this->query->getFieldsBind($options['table']);
foreach ($where as $key => $val) { foreach ($where as $key => $val) {
$str = []; $str = [];
foreach ($val as $field => $value) { foreach ($val as $field => $value) {
@@ -725,7 +725,7 @@ abstract class Builder
{ {
// 获取合法的字段 // 获取合法的字段
if ('*' == $options['field']) { if ('*' == $options['field']) {
$fields = array_keys($this->query->getFieldsType($options)); $fields = array_keys($this->query->getFieldsType($options['table']));
} else { } else {
$fields = $options['field']; $fields = $options['field'];
} }

View File

@@ -1776,21 +1776,21 @@ class Query
} }
// 获取当前数据表字段信息 // 获取当前数据表字段信息
public function getTableFields($options) public function getTableFields($table = '')
{ {
return $this->getTableInfo($options['table'], 'fields'); return $this->getTableInfo($table ?: $this->getOptions('table'), 'fields');
} }
// 获取当前数据表字段类型 // 获取当前数据表字段类型
public function getFieldsType($options) public function getFieldsType($table = '')
{ {
return $this->getTableInfo($options['table'], 'type'); return $this->getTableInfo($table ?: $this->getOptions('table'), 'type');
} }
// 获取当前数据表绑定信息 // 获取当前数据表绑定信息
public function getFieldsBind($options) public function getFieldsBind($table = '')
{ {
$types = $this->getFieldsType($options); $types = $this->getFieldsType($table);
$bind = []; $bind = [];
if ($types) { if ($types) {
foreach ($types as $key => $type) { foreach ($types as $key => $type) {