diff --git a/src/DataTableColumnDefs.php b/src/DataTableColumnDefs.php index ba0ae74..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], 0,-1*(strlen($selectParsed['alias']['base_expr']))); + $key = substr($QBSelect[$index], 0, -1*strlen($selectParsed['alias']['base_expr']) + 1); $alias = end($selectParsed['alias']['no_quotes']['parts']); } else @@ -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.