From 2ecf706fe84d8abd53add671a900d4e217489b8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E8=BE=B0=E8=BD=A9?= Date: Wed, 5 Jun 2024 13:51:52 +0800 Subject: [PATCH] * Add bi getFields function. --- module/bi/model.php | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/module/bi/model.php b/module/bi/model.php index 1f7778ee93..492f2e396a 100644 --- a/module/bi/model.php +++ b/module/bi/model.php @@ -18,15 +18,7 @@ class biModel extends model if(empty($statement)) return false; - $fields = array(); - if($statement->expr) - { - foreach($statement->expr as $fieldInfo) - { - $field = $fieldInfo->expr; - $fields[$field] = $field; - } - } + $fields = $this->getFields($statement); $tables = array(); if($statement->from) @@ -47,6 +39,30 @@ class biModel extends model return array('tables' => array_unique($tables), 'fields' => $fields); } + /** + * 获取sql中的字段。 + * Get tables and fields form sqlparser statment. + * + * @param object $statment + * @param bool $deep + * @access public + * @return array + */ + public function getFields(object $statement, bool $deep = false) + { + $fields = array(); + if($statement->expr) + { + foreach($statement->expr as $fieldInfo) + { + $field = $fieldInfo->expr; + $fields[$field] = $field; + } + } + + return $fields; + } + /** * Try to explain sql. *