diff options
| author | lsces <lester@lsces.co.uk> | 2026-02-24 16:56:55 +0000 |
|---|---|---|
| committer | lsces <lester@lsces.co.uk> | 2026-02-24 16:56:55 +0000 |
| commit | 87f4cfe44872d8514bd015d45a14b9a7dc7fc204 (patch) | |
| tree | df63526eb7a6ed914a70a6de545ea8a4f294d0d1 | |
| parent | 5a5c31e8b7471b7196c08254b386426059018780 (diff) | |
| download | illuminate-firebird-87f4cfe44872d8514bd015d45a14b9a7dc7fc204.tar.gz illuminate-firebird-87f4cfe44872d8514bd015d45a14b9a7dc7fc204.tar.bz2 illuminate-firebird-87f4cfe44872d8514bd015d45a14b9a7dc7fc204.zip | |
Change the Builder overloads to follow the standard for other database drivers. This is the place where restoring the lower case key values needs to be processed.
| -rwxr-xr-x | src/FirebirdConnection.php | 6 | ||||
| -rwxr-xr-x | src/Query/FirebirdBuilder.php (renamed from src/Query/Builder.php) | 57 | ||||
| -rwxr-xr-x | src/Schema/FirebirdBuilder.php | 10 |
3 files changed, 69 insertions, 4 deletions
diff --git a/src/FirebirdConnection.php b/src/FirebirdConnection.php index 8695799..a6a849b 100755 --- a/src/FirebirdConnection.php +++ b/src/FirebirdConnection.php @@ -4,10 +4,10 @@ namespace Xgrz\Firebird; use Illuminate\Database\Connection as DatabaseConnection; use Illuminate\Support\Collection; -use Xgrz\Firebird\Query\Builder as FirebirdQueryBuilder; +use Xgrz\Firebird\Query\FirebirdBuilder as FirebirdQueryBuilder; use Xgrz\Firebird\Query\Grammars\FirebirdGrammar as FirebirdQueryGrammar; use Xgrz\Firebird\Query\Processors\FirebirdProcessor as FirebirdQueryProcessor; -use Xgrz\Firebird\Schema\Builder as FirebirdSchemaBuilder; +use Xgrz\Firebird\Schema\FirebirdBuilder as FirebirdSchemaBuilder; use Xgrz\Firebird\Schema\Grammars\FirebirdGrammar as FirebirdSchemaGrammar; class FirebirdConnection extends DatabaseConnection @@ -77,7 +77,7 @@ class FirebirdConnection extends DatabaseConnection /** * Get a new query builder instance. * - * @return \Xgrz\Firebird\Query\Builder + * @return \Xgrz\Firebird\Query\FirebirdBuilder */ public function query() { diff --git a/src/Query/Builder.php b/src/Query/FirebirdBuilder.php index cda4f1f..98d2b18 100755 --- a/src/Query/Builder.php +++ b/src/Query/FirebirdBuilder.php @@ -3,8 +3,9 @@ namespace Xgrz\Firebird\Query; use Illuminate\Database\Query\Builder as QueryBuilder; +use Illuminate\Support\Collection; -class Builder extends QueryBuilder +class FirebirdBuilder extends QueryBuilder { /** * Determine if any rows exist for the current query. @@ -51,4 +52,58 @@ class Builder extends QueryBuilder ? parent::whereRaw("UPPER($wrapped) LIKE UPPER(?)", [$value]) : parent::orWhereRaw("UPPER($wrapped) LIKE UPPER(?)", [$value]); } + + /** + * Retrieve column values from rows represented as objects. + * + * @param array $queryResult + * @param string $column + * @param string $key + * @return Collection + */ + protected function pluckFromObjectColumn($queryResult, $column, $key) + { + $results = []; + $column = strtoupper($column); + $key = strtoupper($key); + + foreach ($queryResult as $item) { + if (is_null($key)) { + foreach ($queryResult as $row) { + $results[] = $row->$column; + } + } else { + foreach ($queryResult as $row) { + $results[$row->$key] = $row->$column; + } + } + } + + return new Collection($results); + } + + /** + * Retrieve column values from rows represented as arrays. + * + * @param array $queryResult + * @param string $column + * @param string $key + * @return Collection + */ + protected function pluckFromArrayColumn($queryResult, $column, $key) + { + $results = []; + + if (is_null($key)) { + foreach ($queryResult as $row) { + $results[] = $row[$column]; + } + } else { + foreach ($queryResult as $row) { + $results[$row[$key]] = $row[$column]; + } + } + + return new Collection($results); + } } diff --git a/src/Schema/FirebirdBuilder.php b/src/Schema/FirebirdBuilder.php new file mode 100755 index 0000000..0b5a1a7 --- /dev/null +++ b/src/Schema/FirebirdBuilder.php @@ -0,0 +1,10 @@ +<?php + +namespace Xgrz\Firebird\Schema; + +use Illuminate\Database\Schema\Builder as SchemaBuilder; + +class FirebirdBuilder extends SchemaBuilder +{ + // +} |
