From 2912353085c850d45acf301f9797d8a41b93be11 Mon Sep 17 00:00:00 2001 From: thinkphp Date: Fri, 19 Jan 2018 08:57:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9BQuery=E7=B1=BB=E7=9A=84getTab?= =?UTF-8?q?leFields=E5=92=8CgetFieldsType=E6=96=B9=E6=B3=95=20=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E8=A1=A8=E5=90=8D=E8=87=AA=E5=8A=A8=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/db/Query.php | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/library/think/db/Query.php b/library/think/db/Query.php index 3bdaf7cc26..2fd108f676 100644 --- a/library/think/db/Query.php +++ b/library/think/db/Query.php @@ -437,8 +437,12 @@ public function getConfig($name = '') * @param string $tableName 数据表名 * @return array */ - public function getTableFields($tableName) + public function getTableFields($tableName = '') { + if ('' == $tableName) { + $tableName = isset($this->options['table']) ? $this->options['table'] : $this->getTable(); + } + return $this->connection->getTableFields($tableName); } @@ -449,8 +453,12 @@ public function getTableFields($tableName) * @param string $field 字段名 * @return array|string */ - public function getFieldsType($tableName, $field = null) + public function getFieldsType($tableName = '', $field = null) { + if ('' == $tableName) { + $tableName = isset($this->options['table']) ? $this->options['table'] : $this->getTable(); + } + return $this->connection->getFieldsType($tableName, $field); } @@ -911,11 +919,11 @@ public function field($field, $except = false, $tableName = '', $prefix = '', $a if (true === $field) { // 获取全部字段 - $fields = $this->getTableFields($tableName ?: (isset($this->options['table']) ? $this->options['table'] : $this->getTable())); + $fields = $this->getTableFields($tableName); $field = $fields ?: ['*']; } elseif ($except) { // 字段排除 - $fields = $this->getTableFields($tableName ?: (isset($this->options['table']) ? $this->options['table'] : $this->getTable())); + $fields = $this->getTableFields($tableName); $field = $fields ? array_diff($fields, $field) : $field; }