From b28a8eee4cd4264ff9fa47033798eb920fe5b7c1 Mon Sep 17 00:00:00 2001 From: Rachmad Nur Hayat <44340813+rachyharkov@users.noreply.github.com> Date: Thu, 3 Aug 2023 17:57:20 +0700 Subject: [PATCH 1/3] tbl name checker as getFieldData just need "name" --- src/DataTableColumnDefs.php | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/DataTableColumnDefs.php b/src/DataTableColumnDefs.php index ba0ae74..320546b 100644 --- a/src/DataTableColumnDefs.php +++ b/src/DataTableColumnDefs.php @@ -332,7 +332,7 @@ public function initFromBuilder($baseBuilder) foreach ($QBFrom as $table) { - $fieldData = $builder->db()->getFieldData($table); + $fieldData = $builder->db()->getFieldData($this->checkTableName($table)); foreach ($fieldData as $field) { @@ -348,7 +348,7 @@ public function initFromBuilder($baseBuilder) foreach ($QBJoin as $table) { - $fieldData = $builder->db()->getFieldData($table); + $fieldData = $builder->db()->getFieldData($this->checkTableName($table)); foreach ($fieldData as $field) { $column = new Column(); @@ -374,6 +374,18 @@ public function getColumnBy($by, $value) } return NULL; } - + + public function checkTableName($tableName) + { + // if table name have has dot (.) character (ex: database.table or schema.table which is not supported by getFieldData() method) + if(strpos($tableName, '.') !== FALSE) + { + $tableName = explode('.', $tableName); + $tableName = end($tableName); + } + + return $tableName; + } + } // End of DataTableColumnDefs Class. From f5c289b59c50ae919a5f1c2c3c0a7909a7066e87 Mon Sep 17 00:00:00 2001 From: Rachmad Nur Hayat <44340813+rachyharkov@users.noreply.github.com> Date: Fri, 27 Oct 2023 10:54:55 +0700 Subject: [PATCH 2/3] fix select column name with alias --- src/DataTableColumnDefs.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DataTableColumnDefs.php b/src/DataTableColumnDefs.php index 320546b..92123b2 100644 --- a/src/DataTableColumnDefs.php +++ b/src/DataTableColumnDefs.php @@ -305,7 +305,7 @@ public function initFromBuilder($baseBuilder) if( ! empty($selectParsed['alias']) ) { - $key = substr($QBSelect[$index], 0,-1*(strlen($selectParsed['alias']['base_expr']))); + $key = substr($QBSelect[$index], -strlen($selectParsed['alias']['base_expr']) + 1); $alias = end($selectParsed['alias']['no_quotes']['parts']); } else From e9f6b9021dad9981cde8fd954c5f4b304155d536 Mon Sep 17 00:00:00 2001 From: Rachmad Nur Hayat <44340813+rachyharkov@users.noreply.github.com> Date: Fri, 27 Oct 2023 11:11:06 +0700 Subject: [PATCH 3/3] fix wrong position --- src/DataTableColumnDefs.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DataTableColumnDefs.php b/src/DataTableColumnDefs.php index 92123b2..6aabeee 100644 --- a/src/DataTableColumnDefs.php +++ b/src/DataTableColumnDefs.php @@ -305,7 +305,7 @@ public function initFromBuilder($baseBuilder) if( ! empty($selectParsed['alias']) ) { - $key = substr($QBSelect[$index], -strlen($selectParsed['alias']['base_expr']) + 1); + $key = substr($QBSelect[$index], 0, -1*strlen($selectParsed['alias']['base_expr']) + 1); $alias = end($selectParsed['alias']['no_quotes']['parts']); } else