Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[12.x] add generics to QueryBuilder’s column related methods #55663

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 20 additions & 17 deletions src/Illuminate/Database/Query/Builder.php
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ class Builder implements BuilderContract
/**
* The columns that should be returned.
*
* @var array|null
* @var array<string|\Illuminate\Contracts\Database\Query\Expression>|null
*/
public $columns;

Expand Down Expand Up @@ -278,7 +278,7 @@ public function __construct(
/**
* Set the columns to be selected.
*
* @param array|mixed $columns
* @param mixed $columns
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

array|mixed can be simplified to mixed

* @return $this
*/
public function select($columns = ['*'])
Expand Down Expand Up @@ -432,7 +432,7 @@ protected function prependDatabaseNameIfCrossDatabaseQuery($query)
/**
* Add a new select column to the query.
*
* @param array|mixed $column
* @param mixed $column
* @return $this
*/
public function addSelect($column)
Expand Down Expand Up @@ -3019,7 +3019,7 @@ public function toRawSql()
* Execute a query for a single record by ID.
*
* @param int|string $id
* @param array|string $columns
* @param string|\Illuminate\Contracts\Database\Query\Expression|array<string|\Illuminate\Contracts\Database\Query\Expression> $columns
* @return object|null
*/
public function find($id, $columns = ['*'])
Expand All @@ -3033,7 +3033,7 @@ public function find($id, $columns = ['*'])
* @template TValue
*
* @param mixed $id
* @param (\Closure(): TValue)|list<string>|string $columns
* @param (\Closure(): TValue)|string|\Illuminate\Contracts\Database\Query\Expression|array<string|\Illuminate\Contracts\Database\Query\Expression> $columns
* @param (\Closure(): TValue)|null $callback
* @return object|TValue
*/
Expand Down Expand Up @@ -3096,7 +3096,7 @@ public function soleValue($column)
/**
* Execute the query as a "select" statement.
*
* @param array|string $columns
* @param string|\Illuminate\Contracts\Database\Query\Expression|array<string|\Illuminate\Contracts\Database\Query\Expression> $columns
* @return \Illuminate\Support\Collection<int, \stdClass>
*/
public function get($columns = ['*'])
Expand Down Expand Up @@ -3152,7 +3152,7 @@ protected function withoutGroupLimitKeys($items)
* Paginate the given query into a simple paginator.
*
* @param int|\Closure $perPage
* @param array|string $columns
* @param string|\Illuminate\Contracts\Database\Query\Expression|array<string|\Illuminate\Contracts\Database\Query\Expression> $columns
* @param string $pageName
* @param int|null $page
* @param \Closure|int|null $total
Expand Down Expand Up @@ -3180,7 +3180,7 @@ public function paginate($perPage = 15, $columns = ['*'], $pageName = 'page', $p
* This is more efficient on larger data-sets, etc.
*
* @param int $perPage
* @param array|string $columns
* @param string|\Illuminate\Contracts\Database\Query\Expression|array<string|\Illuminate\Contracts\Database\Query\Expression> $columns
* @param string $pageName
* @param int|null $page
* @return \Illuminate\Contracts\Pagination\Paginator
Expand All @@ -3203,7 +3203,7 @@ public function simplePaginate($perPage = 15, $columns = ['*'], $pageName = 'pag
* This is more efficient on larger data-sets, etc.
*
* @param int|null $perPage
* @param array|string $columns
* @param string|\Illuminate\Contracts\Database\Query\Expression|array<string|\Illuminate\Contracts\Database\Query\Expression> $columns
* @param string $cursorName
* @param \Illuminate\Pagination\Cursor|string|null $cursor
* @return \Illuminate\Contracts\Pagination\CursorPaginator
Expand Down Expand Up @@ -3250,7 +3250,7 @@ protected function ensureOrderForCursorPagination($shouldReverse = false)
/**
* Get the count of the total records for the paginator.
*
* @param array $columns
* @param array<string|\Illuminate\Contracts\Database\Query\Expression> $columns
* @return int
*/
public function getCountForPagination($columns = ['*'])
Expand All @@ -3272,8 +3272,8 @@ public function getCountForPagination($columns = ['*'])
/**
* Run a pagination count query.
*
* @param array $columns
* @return array
* @param array<string|\Illuminate\Contracts\Database\Query\Expression> $columns
* @return array<mixed>
*/
protected function runPaginationCountQuery($columns = ['*'])
{
Expand Down Expand Up @@ -3313,7 +3313,8 @@ protected function cloneForPaginationCount()
/**
* Remove the column aliases since they will break count queries.
*
* @return array
* @param array<string|\Illuminate\Contracts\Database\Query\Expression> $columns
* @return array<string|\Illuminate\Contracts\Database\Query\Expression>
*/
protected function withoutSelectAliases(array $columns)
{
Expand Down Expand Up @@ -3677,9 +3678,11 @@ protected function setAggregate($function, $columns)
*
* After running the callback, the columns are reset to the original value.
*
* @param array $columns
* @param callable $callback
* @return mixed
* @template TResult
*
* @param array<string|\Illuminate\Contracts\Database\Query\Expression> $columns
* @param callable(): TResult $callback
* @return TResult
*/
protected function onceWithColumns($columns, $callback)
{
Expand Down Expand Up @@ -4081,7 +4084,7 @@ protected function forSubQuery()
/**
* Get all of the query builder's columns in a text-only array with all expressions evaluated.
*
* @return array
* @return list<string>
*/
public function getColumns()
{
Expand Down