From 8250af0189bc12cfa692274db24a56f59ea3906e Mon Sep 17 00:00:00 2001 From: Alessandro Pizzini Date: Sat, 1 Nov 2014 20:15:54 +0100 Subject: [PATCH 1/2] Support for fluent queries in saveQuery() --- src/Bllim/Datatables/Datatables.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Bllim/Datatables/Datatables.php b/src/Bllim/Datatables/Datatables.php index d5df9772..c770f5fa 100644 --- a/src/Bllim/Datatables/Datatables.php +++ b/src/Bllim/Datatables/Datatables.php @@ -357,9 +357,13 @@ protected function saveQuery($query) $this->query = $query; $this->query_type = $query instanceof \Illuminate\Database\Query\Builder ? 'fluent' : 'eloquent'; if ($this->dataFullSupport) { - $this->columns = array_map(function ($column) { - return trim(DB::connection()->getPdo()->quote($column['data']), "'"); - }, $this->input['columns']); + if ($this->query_type == 'eloquent') { + $this->columns = array_map(function ($column) { + return trim(DB::connection()->getPdo()->quote($column['data']), "'"); + }, $this->input['columns']); + } else { + $this->columns = ($this->query->columns ?: array()); + } } else { $this->columns = $this->query_type == 'eloquent' ? ($this->query->getQuery()->columns ?: array()) : ($this->query->columns ?: array()); } From e6fe066bc50192608a7e64cecff801a42e764584 Mon Sep 17 00:00:00 2001 From: Alessandro Pizzini Date: Sat, 1 Nov 2014 20:16:22 +0100 Subject: [PATCH 2/2] Fix wrong parameter (looking if a column is orderable instead of searchable to enable filters) --- src/Bllim/Datatables/Datatables.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Bllim/Datatables/Datatables.php b/src/Bllim/Datatables/Datatables.php index c770f5fa..207dd2b8 100644 --- a/src/Bllim/Datatables/Datatables.php +++ b/src/Bllim/Datatables/Datatables.php @@ -760,7 +760,7 @@ protected function filtering() // column search for ($i = 0, $c = count($this->input['columns']); $i < $c; $i++) { - if (isset($column_aliases[$i]) && $this->input['columns'][$i]['orderable'] == "true" && $this->input['columns'][$i]['search']['value'] != '') { + if (isset($column_aliases[$i]) && $this->input['columns'][$i]['searchable'] == "true" && $this->input['columns'][$i]['search']['value'] != '') { // if filter column exists for this columns then use user defined method if (isset($this->filter_columns[$column_aliases[$i]])) {