Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
L
laravel-mongodb
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sinan
laravel-mongodb
Commits
af8c2755
Commit
af8c2755
authored
Feb 11, 2020
by
Giacomo Fabbian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[GF] Add docs, use collection for slice operation, fix return type and fix $sliced type
parent
4d81b402
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
24 additions
and
11 deletions
+24
-11
EmbedsMany.php
src/Jenssegers/Mongodb/Relations/EmbedsMany.php
+24
-11
No files found.
src/Jenssegers/Mongodb/Relations/EmbedsMany.php
View file @
af8c2755
...
...
@@ -5,6 +5,7 @@ namespace Jenssegers\Mongodb\Relations;
use
Illuminate\Database\Eloquent\Collection
;
use
Illuminate\Database\Eloquent\Model
;
use
Illuminate\Database\Eloquent\Model
as
EloquentModel
;
use
Illuminate\Pagination\AbstractPaginator
;
use
Illuminate\Pagination\LengthAwarePaginator
;
use
Illuminate\Pagination\Paginator
;
use
MongoDB\BSON\ObjectID
;
...
...
@@ -264,26 +265,38 @@ class EmbedsMany extends EmbedsOneOrMany
return
$this
->
setEmbedded
(
$records
);
}
/**
* Get a paginator for the "select" statement.
* @param int $perPage
* @return \Illuminate\Pagination\AbstractPaginator
* @param null $perPage
* @param array $columns
* @param string $pageName
* @param null $page
* @return \Illuminate\Contracts\Pagination\LengthAwarePaginator
*/
public
function
paginate
(
$perPage
=
null
)
public
function
paginate
(
$perPage
=
null
,
$columns
=
[
'*'
],
$pageName
=
'page'
,
$page
=
null
)
{
$page
=
Paginator
::
resolveCurrentPage
();
$perPage
=
$perPage
?:
$this
->
related
->
getPerPage
();
$results
=
$this
->
getEmbedded
();
$total
=
count
(
$results
);
$results
=
$this
->
toCollection
(
$results
);
$total
=
$results
->
count
();
$start
=
(
$page
-
1
)
*
$perPage
;
$sliced
=
array_slice
(
$results
,
$start
,
$perPage
);
return
new
LengthAwarePaginator
(
$sliced
,
$total
,
$perPage
,
$page
,
[
'path'
=>
Paginator
::
resolveCurrentPath
(),
]);
$sliced
=
$results
->
slice
(
$start
,
$perPage
);
return
new
LengthAwarePaginator
(
$sliced
,
$total
,
$perPage
,
$page
,
[
'path'
=>
Paginator
::
resolveCurrentPath
()
]
);
}
/**
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment