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
cc00aff8
Commit
cc00aff8
authored
Sep 08, 2019
by
Jens Segers
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
🚨
Linting
parent
cf45ec63
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
43 changed files
with
570 additions
and
604 deletions
+570
-604
DatabaseTokenRepository.php
src/Jenssegers/Mongodb/Auth/DatabaseTokenRepository.php
+5
-1
PasswordResetServiceProvider.php
src/Jenssegers/Mongodb/Auth/PasswordResetServiceProvider.php
+0
-1
Collection.php
src/Jenssegers/Mongodb/Collection.php
+2
-5
Connection.php
src/Jenssegers/Mongodb/Connection.php
+15
-29
Builder.php
src/Jenssegers/Mongodb/Eloquent/Builder.php
+2
-4
EmbedsRelations.php
src/Jenssegers/Mongodb/Eloquent/EmbedsRelations.php
+8
-10
HybridRelations.php
src/Jenssegers/Mongodb/Eloquent/HybridRelations.php
+31
-39
Model.php
src/Jenssegers/Mongodb/Eloquent/Model.php
+14
-27
QueriesRelationships.php
src/Jenssegers/Mongodb/Helpers/QueriesRelationships.php
+32
-31
Builder.php
src/Jenssegers/Mongodb/Query/Builder.php
+18
-42
MongoFailedJobProvider.php
...enssegers/Mongodb/Queue/Failed/MongoFailedJobProvider.php
+5
-10
MongoConnector.php
src/Jenssegers/Mongodb/Queue/MongoConnector.php
+2
-5
MongoJob.php
src/Jenssegers/Mongodb/Queue/MongoJob.php
+0
-1
MongoQueue.php
src/Jenssegers/Mongodb/Queue/MongoQueue.php
+4
-12
BelongsTo.php
src/Jenssegers/Mongodb/Relations/BelongsTo.php
+2
-5
BelongsToMany.php
src/Jenssegers/Mongodb/Relations/BelongsToMany.php
+6
-14
EmbedsMany.php
src/Jenssegers/Mongodb/Relations/EmbedsMany.php
+14
-27
EmbedsOne.php
src/Jenssegers/Mongodb/Relations/EmbedsOne.php
+6
-13
EmbedsOneOrMany.php
src/Jenssegers/Mongodb/Relations/EmbedsOneOrMany.php
+20
-42
HasMany.php
src/Jenssegers/Mongodb/Relations/HasMany.php
+8
-14
HasOne.php
src/Jenssegers/Mongodb/Relations/HasOne.php
+9
-15
MorphTo.php
src/Jenssegers/Mongodb/Relations/MorphTo.php
+3
-5
Blueprint.php
src/Jenssegers/Mongodb/Schema/Blueprint.php
+11
-21
Builder.php
src/Jenssegers/Mongodb/Schema/Builder.php
+3
-6
DatabasePresenceVerifier.php
...enssegers/Mongodb/Validation/DatabasePresenceVerifier.php
+10
-12
AuthTest.php
tests/AuthTest.php
+9
-8
CollectionTest.php
tests/CollectionTest.php
+2
-2
EmbeddedRelationsTest.php
tests/EmbeddedRelationsTest.php
+161
-57
GeospatialTest.php
tests/GeospatialTest.php
+23
-21
HybridRelationsTest.php
tests/HybridRelationsTest.php
+12
-10
ModelTest.php
tests/ModelTest.php
+1
-1
QueryBuilderTest.php
tests/QueryBuilderTest.php
+56
-34
QueryTest.php
tests/QueryTest.php
+25
-25
RelationsTest.php
tests/RelationsTest.php
+19
-17
SchemaTest.php
tests/SchemaTest.php
+5
-3
TestCase.php
tests/TestCase.php
+6
-10
database.php
tests/config/database.php
+14
-14
queue.php
tests/config/queue.php
+3
-3
Book.php
tests/models/Book.php
+0
-1
Item.php
tests/models/Item.php
+0
-1
Scoped.php
tests/models/Scoped.php
+1
-1
Soft.php
tests/models/Soft.php
+0
-1
User.php
tests/models/User.php
+3
-4
No files found.
src/Jenssegers/Mongodb/Auth/DatabaseTokenRepository.php
View file @
cc00aff8
...
...
@@ -14,7 +14,11 @@ class DatabaseTokenRepository extends BaseDatabaseTokenRepository
*/
protected
function
getPayload
(
$email
,
$token
)
{
return
[
'email'
=>
$email
,
'token'
=>
$this
->
hasher
->
make
(
$token
),
'created_at'
=>
new
UTCDateTime
(
time
()
*
1000
)];
return
[
'email'
=>
$email
,
'token'
=>
$this
->
hasher
->
make
(
$token
),
'created_at'
=>
new
UTCDateTime
(
time
()
*
1000
),
];
}
/**
...
...
src/Jenssegers/Mongodb/Auth/PasswordResetServiceProvider.php
View file @
cc00aff8
...
...
@@ -8,7 +8,6 @@ class PasswordResetServiceProvider extends BasePasswordResetServiceProvider
{
/**
* Register the token repository implementation.
*
* @return void
*/
protected
function
registerTokenRepository
()
...
...
src/Jenssegers/Mongodb/Collection.php
View file @
cc00aff8
...
...
@@ -10,14 +10,12 @@ class Collection
{
/**
* The connection instance.
*
* @var Connection
*/
protected
$connection
;
/**
* The MongoCollection instance..
*
* @var MongoCollection
*/
protected
$collection
;
...
...
@@ -34,9 +32,8 @@ class Collection
/**
* Handle dynamic method calls.
*
* @param string $method
* @param array $parameters
* @param string $method
* @param array $parameters
* @return mixed
*/
public
function
__call
(
$method
,
$parameters
)
...
...
src/Jenssegers/Mongodb/Connection.php
View file @
cc00aff8
...
...
@@ -10,22 +10,19 @@ class Connection extends BaseConnection
{
/**
* The MongoDB database handler.
*
* @var \MongoDB\Database
*/
protected
$db
;
/**
* The MongoDB connection handler.
*
* @var \MongoDB\Client
*/
protected
$connection
;
/**
* Create a new database connection instance.
*
* @param array $config
* @param array $config
*/
public
function
__construct
(
array
$config
)
{
...
...
@@ -52,8 +49,7 @@ class Connection extends BaseConnection
/**
* Begin a fluent query against a database collection.
*
* @param string $collection
* @param string $collection
* @return Query\Builder
*/
public
function
collection
(
$collection
)
...
...
@@ -65,9 +61,8 @@ class Connection extends BaseConnection
/**
* Begin a fluent query against a database collection.
*
* @param string $table
* @param string|null $as
* @param string $table
* @param string|null $as
* @return Query\Builder
*/
public
function
table
(
$table
,
$as
=
null
)
...
...
@@ -77,8 +72,7 @@ class Connection extends BaseConnection
/**
* Get a MongoDB collection.
*
* @param string $name
* @param string $name
* @return Collection
*/
public
function
getCollection
(
$name
)
...
...
@@ -96,7 +90,6 @@ class Connection extends BaseConnection
/**
* Get the MongoDB database object.
*
* @return \MongoDB\Database
*/
public
function
getMongoDB
()
...
...
@@ -106,7 +99,6 @@ class Connection extends BaseConnection
/**
* return MongoDB object.
*
* @return \MongoDB\Client
*/
public
function
getMongoClient
()
...
...
@@ -124,10 +116,9 @@ class Connection extends BaseConnection
/**
* Create a new MongoDB connection.
*
* @param string $dsn
* @param array $config
* @param array $options
* @param string $dsn
* @param array $config
* @param array $options
* @return \MongoDB\Client
*/
protected
function
createConnection
(
$dsn
,
array
$config
,
array
$options
)
...
...
@@ -160,19 +151,17 @@ class Connection extends BaseConnection
/**
* Determine if the given configuration array has a dsn string.
*
* @param array $config
* @param array $config
* @return bool
*/
protected
function
hasDsnString
(
array
$config
)
{
return
isset
(
$config
[
'dsn'
])
&&
!
empty
(
$config
[
'dsn'
]);
return
isset
(
$config
[
'dsn'
])
&&
!
empty
(
$config
[
'dsn'
]);
}
/**
* Get the DSN string form configuration.
*
* @param array $config
* @param array $config
* @return string
*/
protected
function
getDsnString
(
array
$config
)
...
...
@@ -182,8 +171,7 @@ class Connection extends BaseConnection
/**
* Get the DSN string for a host / port configuration.
*
* @param array $config
* @param array $config
* @return string
*/
protected
function
getHostDsn
(
array
$config
)
...
...
@@ -206,8 +194,7 @@ class Connection extends BaseConnection
/**
* Create a DSN string from a configuration.
*
* @param array $config
* @param array $config
* @return string
*/
protected
function
getDsn
(
array
$config
)
...
...
@@ -259,9 +246,8 @@ class Connection extends BaseConnection
/**
* Dynamically pass methods to the connection.
*
* @param string $method
* @param array $parameters
* @param string $method
* @param array $parameters
* @return mixed
*/
public
function
__call
(
$method
,
$parameters
)
...
...
src/Jenssegers/Mongodb/Eloquent/Builder.php
View file @
cc00aff8
...
...
@@ -13,7 +13,6 @@ class Builder extends EloquentBuilder
/**
* The methods that should be returned from query builder.
*
* @var array
*/
protected
$passthru
=
[
...
...
@@ -182,13 +181,12 @@ class Builder extends EloquentBuilder
* TODO Remove if https://github.com/laravel/framework/commit/6484744326531829341e1ff886cc9b628b20d73e
* wiil be reverted
* Issue in laravel frawework https://github.com/laravel/framework/issues/27791
*
* @param array $values
* @param array $values
* @return array
*/
protected
function
addUpdatedAtColumn
(
array
$values
)
{
if
(
!
$this
->
model
->
usesTimestamps
()
||
$this
->
model
->
getUpdatedAtColumn
()
===
null
)
{
if
(
!
$this
->
model
->
usesTimestamps
()
||
$this
->
model
->
getUpdatedAtColumn
()
===
null
)
{
return
$values
;
}
...
...
src/Jenssegers/Mongodb/Eloquent/EmbedsRelations.php
View file @
cc00aff8
...
...
@@ -10,11 +10,10 @@ trait EmbedsRelations
{
/**
* Define an embedded one-to-many relationship.
*
* @param string $related
* @param string $localKey
* @param string $foreignKey
* @param string $relation
* @param string $related
* @param string $localKey
* @param string $foreignKey
* @param string $relation
* @return \Jenssegers\Mongodb\Relations\EmbedsMany
*/
protected
function
embedsMany
(
$related
,
$localKey
=
null
,
$foreignKey
=
null
,
$relation
=
null
)
...
...
@@ -45,11 +44,10 @@ trait EmbedsRelations
/**
* Define an embedded one-to-many relationship.
*
* @param string $related
* @param string $localKey
* @param string $foreignKey
* @param string $relation
* @param string $related
* @param string $localKey
* @param string $foreignKey
* @param string $relation
* @return \Jenssegers\Mongodb\Relations\EmbedsOne
*/
protected
function
embedsOne
(
$related
,
$localKey
=
null
,
$foreignKey
=
null
,
$relation
=
null
)
...
...
src/Jenssegers/Mongodb/Eloquent/HybridRelations.php
View file @
cc00aff8
...
...
@@ -16,10 +16,9 @@ trait HybridRelations
{
/**
* Define a one-to-one relationship.
*
* @param string $related
* @param string $foreignKey
* @param string $localKey
* @param string $related
* @param string $foreignKey
* @param string $localKey
* @return \Illuminate\Database\Eloquent\Relations\HasOne
*/
public
function
hasOne
(
$related
,
$foreignKey
=
null
,
$localKey
=
null
)
...
...
@@ -40,12 +39,11 @@ trait HybridRelations
/**
* Define a polymorphic one-to-one relationship.
*
* @param string $related
* @param string $name
* @param string $type
* @param string $id
* @param string $localKey
* @param string $related
* @param string $name
* @param string $type
* @param string $id
* @param string $localKey
* @return \Illuminate\Database\Eloquent\Relations\MorphOne
*/
public
function
morphOne
(
$related
,
$name
,
$type
=
null
,
$id
=
null
,
$localKey
=
null
)
...
...
@@ -66,10 +64,9 @@ trait HybridRelations
/**
* Define a one-to-many relationship.
*
* @param string $related
* @param string $foreignKey
* @param string $localKey
* @param string $related
* @param string $foreignKey
* @param string $localKey
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public
function
hasMany
(
$related
,
$foreignKey
=
null
,
$localKey
=
null
)
...
...
@@ -90,12 +87,11 @@ trait HybridRelations
/**
* Define a polymorphic one-to-many relationship.
*
* @param string $related
* @param string $name
* @param string $type
* @param string $id
* @param string $localKey
* @param string $related
* @param string $name
* @param string $type
* @param string $id
* @param string $localKey
* @return \Illuminate\Database\Eloquent\Relations\MorphMany
*/
public
function
morphMany
(
$related
,
$name
,
$type
=
null
,
$id
=
null
,
$localKey
=
null
)
...
...
@@ -121,11 +117,10 @@ trait HybridRelations
/**
* Define an inverse one-to-one or many relationship.
*
* @param string $related
* @param string $foreignKey
* @param string $otherKey
* @param string $relation
* @param string $related
* @param string $foreignKey
* @param string $otherKey
* @param string $relation
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public
function
belongsTo
(
$related
,
$foreignKey
=
null
,
$otherKey
=
null
,
$relation
=
null
)
...
...
@@ -165,11 +160,10 @@ trait HybridRelations
/**
* Define a polymorphic, inverse one-to-one or many relationship.
*
* @param string $name
* @param string $type
* @param string $id
* @param string $ownerKey
* @param string $name
* @param string $type
* @param string $id
* @param string $ownerKey
* @return \Illuminate\Database\Eloquent\Relations\MorphTo
*/
public
function
morphTo
(
$name
=
null
,
$type
=
null
,
$id
=
null
,
$ownerKey
=
null
)
...
...
@@ -208,14 +202,13 @@ trait HybridRelations
/**
* Define a many-to-many relationship.
*
* @param string $related
* @param string $collection
* @param string $foreignKey
* @param string $otherKey
* @param string $parentKey
* @param string $relatedKey
* @param string $relation
* @param string $related
* @param string $collection
* @param string $foreignKey
* @param string $otherKey
* @param string $parentKey
* @param string $relatedKey
* @param string $relation
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public
function
belongsToMany
(
...
...
@@ -282,7 +275,6 @@ trait HybridRelations
/**
* Get the relationship name of the belongs to many.
*
* @return string
*/
protected
function
guessBelongsToManyRelation
()
...
...
src/Jenssegers/Mongodb/Eloquent/Model.php
View file @
cc00aff8
...
...
@@ -4,6 +4,8 @@ namespace Jenssegers\Mongodb\Eloquent;
use
Carbon\Carbon
;
use
DateTime
;
use
Illuminate\Contracts\Queue\QueueableCollection
;
use
Illuminate\Contracts\Queue\QueueableEntity
;
use
Illuminate\Database\Eloquent\Model
as
BaseModel
;
use
Illuminate\Database\Eloquent\Relations\Relation
;
use
Illuminate\Support\Arr
;
...
...
@@ -12,8 +14,6 @@ use Jenssegers\Mongodb\Query\Builder as QueryBuilder;
use
MongoDB\BSON\Binary
;
use
MongoDB\BSON\ObjectID
;
use
MongoDB\BSON\UTCDateTime
;
use
Illuminate\Contracts\Queue\QueueableEntity
;
use
Illuminate\Contracts\Queue\QueueableCollection
;
abstract
class
Model
extends
BaseModel
{
...
...
@@ -21,36 +21,31 @@ abstract class Model extends BaseModel
/**
* The collection associated with the model.
*
* @var string
*/
protected
$collection
;
/**
* The primary key for the model.
*
* @var string
*/
protected
$primaryKey
=
'_id'
;
/**
* The primary key type.
*
* @var string
*/
protected
$keyType
=
'string'
;
/**
* The parent relation instance.
*
* @var Relation
*/
protected
$parentRelation
;
/**
* Custom accessor for the model's id.
*
* @param mixed $value
* @param mixed $value
* @return mixed
*/
public
function
getIdAttribute
(
$value
=
null
)
...
...
@@ -267,8 +262,7 @@ abstract class Model extends BaseModel
/**
* Remove one or more fields.
*
* @param mixed $columns
* @param mixed $columns
* @return int
*/
public
function
drop
(
$columns
)
...
...
@@ -313,9 +307,8 @@ abstract class Model extends BaseModel
/**
* Remove one or more values from an array.
*
* @param string $column
* @param mixed $values
* @param string $column
* @param mixed $values
* @return mixed
*/
public
function
pull
(
$column
,
$values
)
...
...
@@ -332,10 +325,9 @@ abstract class Model extends BaseModel
/**
* Append one or more values to the underlying attribute value and sync with original.
*
* @param string $column
* @param array $values
* @param bool $unique
* @param string $column
* @param array $values
* @param bool $unique
*/
protected
function
pushAttributeValues
(
$column
,
array
$values
,
$unique
=
false
)
{
...
...
@@ -357,9 +349,8 @@ abstract class Model extends BaseModel
/**
* Remove one or more values to the underlying attribute value and sync with original.
*
* @param string $column
* @param array $values
* @param string $column
* @param array $values
*/
protected
function
pullAttributeValues
(
$column
,
array
$values
)
{
...
...
@@ -390,8 +381,7 @@ abstract class Model extends BaseModel
/**
* Set the parent relation.
*
* @param \Illuminate\Database\Eloquent\Relations\Relation $relation
* @param \Illuminate\Database\Eloquent\Relations\Relation $relation
*/
public
function
setParentRelation
(
Relation
$relation
)
{
...
...
@@ -400,7 +390,6 @@ abstract class Model extends BaseModel
/**
* Get the parent relation.
*
* @return \Illuminate\Database\Eloquent\Relations\Relation
*/
public
function
getParentRelation
()
...
...
@@ -436,7 +425,6 @@ abstract class Model extends BaseModel
/**
* Get the queueable relationships for the entity.
*
* @return array
*/
public
function
getQueueableRelations
()
...
...
@@ -450,13 +438,13 @@ abstract class Model extends BaseModel
if
(
$relation
instanceof
QueueableCollection
)
{
foreach
(
$relation
->
getQueueableRelations
()
as
$collectionValue
)
{
$relations
[]
=
$key
.
'.'
.
$collectionValue
;
$relations
[]
=
$key
.
'.'
.
$collectionValue
;
}
}
if
(
$relation
instanceof
QueueableEntity
)
{
foreach
(
$relation
->
getQueueableRelations
()
as
$entityKey
=>
$entityValue
)
{
$relations
[]
=
$key
.
'.'
.
$entityValue
;
$relations
[]
=
$key
.
'.'
.
$entityValue
;
}
}
}
...
...
@@ -466,7 +454,6 @@ abstract class Model extends BaseModel
/**
* Get loaded relations for the instance without parent.
*
* @return array
*/
protected
function
getRelationsWithoutParent
()
...
...
src/Jenssegers/Mongodb/Helpers/QueriesRelationships.php
View file @
cc00aff8
...
...
@@ -3,6 +3,8 @@
namespace
Jenssegers\Mongodb\Helpers
;
use
Closure
;
use
Exception
;
use
Illuminate\Database\Eloquent\Builder
;
use
Illuminate\Database\Eloquent\Relations\BelongsTo
;
use
Illuminate\Database\Eloquent\Relations\BelongsToMany
;
use
Illuminate\Database\Eloquent\Relations\HasOneOrMany
;
...
...
@@ -12,13 +14,12 @@ trait QueriesRelationships
{
/**
* Add a relationship count / exists condition to the query.
*
* @param string $relation
* @param string $operator
* @param int $count
* @param string $boolean
* @param \Closure|null $callback
* @return \Illuminate\Database\Eloquent\Builder|static
* @param string $relation
* @param string $operator
* @param int $count
* @param string $boolean
* @param Closure|null $callback
* @return Builder|static
*/
public
function
has
(
$relation
,
$operator
=
'>='
,
$count
=
1
,
$boolean
=
'and'
,
Closure
$callback
=
null
)
{
...
...
@@ -74,7 +75,7 @@ trait QueriesRelationships
* @param string $boolean
* @param Closure|null $callback
* @return mixed
* @throws
\
Exception
* @throws Exception
*/
public
function
addHybridHas
(
$relation
,
$operator
=
'>='
,
$count
=
1
,
$boolean
=
'and'
,
Closure
$callback
=
null
)
{
...
...
@@ -97,29 +98,6 @@ trait QueriesRelationships
return
$this
->
whereIn
(
$this
->
getRelatedConstraintKey
(
$relation
),
$relatedIds
,
$boolean
,
$not
);
}
/**
* Returns key we are constraining this parent model's query with
* @param $relation
* @return string
* @throws \Exception
*/
protected
function
getRelatedConstraintKey
(
$relation
)
{
if
(
$relation
instanceof
HasOneOrMany
)
{
return
$this
->
model
->
getKeyName
();
}
if
(
$relation
instanceof
BelongsTo
)
{
return
$relation
->
getForeignKeyName
();
}
if
(
$relation
instanceof
BelongsToMany
&&
!
$this
->
isAcrossConnections
(
$relation
))
{
return
$this
->
model
->
getKeyName
();
}
throw
new
\Exception
(
class_basename
(
$relation
)
.
' is not supported for hybrid query constraints.'
);
}
/**
* @param $relation
* @return string
...
...
@@ -166,4 +144,27 @@ trait QueriesRelationships
// All related ids.
return
array_keys
(
$relationCount
);
}
/**
* Returns key we are constraining this parent model's query with
* @param $relation
* @return string
* @throws Exception
*/
protected
function
getRelatedConstraintKey
(
$relation
)
{
if
(
$relation
instanceof
HasOneOrMany
)
{
return
$this
->
model
->
getKeyName
();
}
if
(
$relation
instanceof
BelongsTo
)
{
return
$relation
->
getForeignKeyName
();
}
if
(
$relation
instanceof
BelongsToMany
&&
!
$this
->
isAcrossConnections
(
$relation
))
{
return
$this
->
model
->
getKeyName
();
}
throw
new
Exception
(
class_basename
(
$relation
)
.
' is not supported for hybrid query constraints.'
);
}
}
src/Jenssegers/Mongodb/Query/Builder.php
View file @
cc00aff8
...
...
@@ -20,49 +20,42 @@ class Builder extends BaseBuilder
{
/**
* The database collection.
*
* @var MongoCollection
*/
protected
$collection
;
/**
* The column projections.
*
* @var array
*/
public
$projections
;
/**
* The cursor timeout value.
*
* @var int
*/
public
$timeout
;
/**
* The cursor hint value.
*
* @var int
*/
public
$hint
;
/**
* Custom options to add to the query.
*
* @var array
*/
public
$options
=
[];
/**
* Indicate if we are executing a pagination query.
*
* @var bool
*/
public
$paginating
=
false
;
/**
* All of the available clause operators.
*
* @var array
*/
public
$operators
=
[
...
...
@@ -110,7 +103,6 @@ class Builder extends BaseBuilder
/**
* Operator conversion.
*
* @var array
*/
protected
$conversion
=
[
...
...
@@ -125,7 +117,6 @@ class Builder extends BaseBuilder
/**
* Check if we need to return Collections instead of plain arrays (laravel >= 5.3 )
*
* @var boolean
*/
protected
$useCollections
;
...
...
@@ -143,7 +134,6 @@ class Builder extends BaseBuilder
/**
* Returns true if Laravel or Lumen >= 5.3
*
* @return bool
*/
protected
function
shouldUseCollections
()
...
...
@@ -159,8 +149,7 @@ class Builder extends BaseBuilder
/**
* Set the projections.
*
* @param array $columns
* @param array $columns
* @return $this
*/
public
function
project
(
$columns
)
...
...
@@ -172,8 +161,7 @@ class Builder extends BaseBuilder
/**
* Set the cursor timeout in seconds.
*
* @param int $seconds
* @param int $seconds
* @return $this
*/
public
function
timeout
(
$seconds
)
...
...
@@ -185,8 +173,7 @@ class Builder extends BaseBuilder
/**
* Set the cursor hint.
*
* @param mixed $index
* @param mixed $index
* @return $this
*/
public
function
hint
(
$index
)
...
...
@@ -224,8 +211,7 @@ class Builder extends BaseBuilder
/**
* Execute the query as a fresh "select" statement.
*
* @param array $columns
* @param array $columns
* @return array|static[]|Collection
*/
public
function
getFresh
(
$columns
=
[])
...
...
@@ -412,7 +398,6 @@ class Builder extends BaseBuilder
/**
* Generate the unique cache key for the current query.
*
* @return string
*/
public
function
generateCacheKey
()
...
...
@@ -506,11 +491,10 @@ class Builder extends BaseBuilder
/**
* Add a "where all" clause to the query.
*
* @param string $column
* @param array $values
* @param string $boolean
* @param bool $not
* @param string $column
* @param array $values
* @param string $boolean
* @param bool $not
* @return $this
*/
public
function
whereAll
(
$column
,
array
$values
,
$boolean
=
'and'
,
$not
=
false
)
...
...
@@ -711,11 +695,10 @@ class Builder extends BaseBuilder
/**
* Get an array with the values of a given column.
*
* @deprecated
* @param string $column
* @param string $key
* @param string $column
* @param string $key
* @return array
* @deprecated
*/
public
function
lists
(
$column
,
$key
=
null
)
{
...
...
@@ -743,7 +726,6 @@ class Builder extends BaseBuilder
/**
* Append one or more values to an array.
*
* @param mixed $column
* @param mixed $value
* @param bool $unique
...
...
@@ -770,9 +752,8 @@ class Builder extends BaseBuilder
/**
* Remove one or more values from an array.
*
* @param mixed $column
* @param mixed $value
* @param mixed $column
* @param mixed $value
* @return int
*/
public
function
pull
(
$column
,
$value
=
null
)
...
...
@@ -794,8 +775,7 @@ class Builder extends BaseBuilder
/**
* Remove one or more fields.
*
* @param mixed $columns
* @param mixed $columns
* @return int
*/
public
function
drop
(
$columns
)
...
...
@@ -825,9 +805,8 @@ class Builder extends BaseBuilder
/**
* Perform an update query.
*
* @param array $query
* @param array $options
* @param array $query
* @param array $options
* @return int
*/
protected
function
performUpdate
(
$query
,
array
$options
=
[])
...
...
@@ -848,8 +827,7 @@ class Builder extends BaseBuilder
/**
* Convert a key to ObjectID if needed.
*
* @param mixed $id
* @param mixed $id
* @return mixed
*/
public
function
convertKey
(
$id
)
...
...
@@ -886,7 +864,6 @@ class Builder extends BaseBuilder
/**
* Compile the where array.
*
* @return array
*/
protected
function
compileWheres
()
...
...
@@ -1146,8 +1123,7 @@ class Builder extends BaseBuilder
/**
* Set custom options for the query.
*
* @param array $options
* @param array $options
* @return $this
*/
public
function
options
(
array
$options
)
...
...
src/Jenssegers/Mongodb/Queue/Failed/MongoFailedJobProvider.php
View file @
cc00aff8
...
...
@@ -9,11 +9,9 @@ class MongoFailedJobProvider extends DatabaseFailedJobProvider
{
/**
* Log a failed job into storage.
*
* @param string $connection
* @param string $queue
* @param string $payload
*
* @param string $connection
* @param string $queue
* @param string $payload
* @return void
*/
public
function
log
(
$connection
,
$queue
,
$payload
,
$exception
)
...
...
@@ -25,7 +23,6 @@ class MongoFailedJobProvider extends DatabaseFailedJobProvider
/**
* Get a list of all of the failed jobs.
*
* @return object[]
*/
public
function
all
()
...
...
@@ -42,8 +39,7 @@ class MongoFailedJobProvider extends DatabaseFailedJobProvider
/**
* Get a single failed job.
*
* @param mixed $id
* @param mixed $id
* @return object
*/
public
function
find
(
$id
)
...
...
@@ -57,8 +53,7 @@ class MongoFailedJobProvider extends DatabaseFailedJobProvider
/**
* Delete a single failed job from storage.
*
* @param mixed $id
* @param mixed $id
* @return bool
*/
public
function
forget
(
$id
)
...
...
src/Jenssegers/Mongodb/Queue/MongoConnector.php
View file @
cc00aff8
...
...
@@ -10,15 +10,13 @@ class MongoConnector implements ConnectorInterface
{
/**
* Database connections.
*
* @var \Illuminate\Database\ConnectionResolverInterface
*/
protected
$connections
;
/**
* Create a new connector instance.
*
* @param \Illuminate\Database\ConnectionResolverInterface $connections
* @param \Illuminate\Database\ConnectionResolverInterface $connections
*/
public
function
__construct
(
ConnectionResolverInterface
$connections
)
{
...
...
@@ -27,8 +25,7 @@ class MongoConnector implements ConnectorInterface
/**
* Establish a queue connection.
*
* @param array $config
* @param array $config
* @return \Illuminate\Contracts\Queue\Queue
*/
public
function
connect
(
array
$config
)
...
...
src/Jenssegers/Mongodb/Queue/MongoJob.php
View file @
cc00aff8
...
...
@@ -8,7 +8,6 @@ class MongoJob extends DatabaseJob
{
/**
* Indicates if the job has been reserved.
*
* @return bool
*/
public
function
isReserved
()
...
...
src/Jenssegers/Mongodb/Queue/MongoQueue.php
View file @
cc00aff8
...
...
@@ -11,14 +11,12 @@ class MongoQueue extends DatabaseQueue
{
/**
* The expiration time of a job.
*
* @var int|null
*/
protected
$retryAfter
=
60
;
/**
* The connection name for the queue.
*
* @var string
*/
protected
$connectionName
;
...
...
@@ -52,17 +50,13 @@ class MongoQueue extends DatabaseQueue
/**
* Get the next available job for the queue and mark it as reserved.
*
* When using multiple daemon queue listeners to process jobs there
* is a possibility that multiple processes can end up reading the
* same record before one has flagged it as reserved.
*
* This race condition can result in random jobs being run more then
* once. To solve this we use findOneAndUpdate to lock the next jobs
* record while flagging it as reserved at the same time.
*
* @param string|null $queue
*
* @param string|null $queue
* @return \StdClass|null
*/
protected
function
getNextAvailableJobAndReserve
(
$queue
)
...
...
@@ -94,8 +88,7 @@ class MongoQueue extends DatabaseQueue
/**
* Release the jobs that have been reserved for too long.
*
* @param string $queue
* @param string $queue
* @return void
*/
protected
function
releaseJobsThatHaveBeenReservedTooLong
(
$queue
)
...
...
@@ -124,9 +117,8 @@ class MongoQueue extends DatabaseQueue
/**
* Release the given job ID from reservation.
*
* @param string $id
* @param int $attempts
* @param string $id
* @param int $attempts
* @return void
*/
protected
function
releaseJob
(
$id
,
$attempts
)
...
...
src/Jenssegers/Mongodb/Relations/BelongsTo.php
View file @
cc00aff8
...
...
@@ -9,7 +9,6 @@ class BelongsTo extends \Illuminate\Database\Eloquent\Relations\BelongsTo
{
/**
* Get the key for comparing against the parent key in "has" query.
*
* @return string
*/
public
function
getHasCompareKey
()
...
...
@@ -53,7 +52,6 @@ class BelongsTo extends \Illuminate\Database\Eloquent\Relations\BelongsTo
/**
* Get the owner key with backwards compatible support.
*
* @return string
*/
public
function
getOwnerKey
()
...
...
@@ -63,9 +61,8 @@ class BelongsTo extends \Illuminate\Database\Eloquent\Relations\BelongsTo
/**
* Get the name of the "where in" method for eager loading.
*
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
* @return string
*/
protected
function
whereInMethod
(
EloquentModel
$model
,
$key
)
...
...
src/Jenssegers/Mongodb/Relations/BelongsToMany.php
View file @
cc00aff8
...
...
@@ -5,15 +5,14 @@ namespace Jenssegers\Mongodb\Relations;
use
Illuminate\Database\Eloquent\Builder
;
use
Illuminate\Database\Eloquent\Collection
;
use
Illuminate\Database\Eloquent\Model
;
use
Illuminate\Database\Eloquent\Model
as
EloquentModel
;
use
Illuminate\Database\Eloquent\Relations\BelongsToMany
as
EloquentBelongsToMany
;
use
Illuminate\Support\Arr
;
use
Illuminate\Database\Eloquent\Model
as
EloquentModel
;
class
BelongsToMany
extends
EloquentBelongsToMany
{
/**
* Get the key for comparing against the parent key in "has" query.
*
* @return string
*/
public
function
getHasCompareKey
()
...
...
@@ -39,8 +38,7 @@ class BelongsToMany extends EloquentBelongsToMany
/**
* Set the select clause for the relation query.
*
* @param array $columns
* @param array $columns
* @return array
*/
protected
function
getSelectColumns
(
array
$columns
=
[
'*'
])
...
...
@@ -68,7 +66,6 @@ class BelongsToMany extends EloquentBelongsToMany
/**
* Set the where clause for the relation query.
*
* @return $this
*/
protected
function
setWhere
()
...
...
@@ -275,7 +272,6 @@ class BelongsToMany extends EloquentBelongsToMany
/**
* Create a new query builder for the related model.
*
* @return \Illuminate\Database\Query\Builder
*/
public
function
newRelatedQuery
()
...
...
@@ -285,7 +281,6 @@ class BelongsToMany extends EloquentBelongsToMany
/**
* Get the fully qualified foreign key for the relation.
*
* @return string
*/
public
function
getForeignKey
()
...
...
@@ -312,10 +307,9 @@ class BelongsToMany extends EloquentBelongsToMany
/**
* Format the sync list so that it is keyed by ID. (Legacy Support)
* The original function has been renamed to formatRecordsList since Laravel 5.3
*
* @deprecated
* @param array $records
* @param array $records
* @return array
* @deprecated
*/
protected
function
formatSyncList
(
array
$records
)
{
...
...
@@ -331,7 +325,6 @@ class BelongsToMany extends EloquentBelongsToMany
/**
* Get the related key with backwards compatible support.
*
* @return string
*/
public
function
getRelatedKey
()
...
...
@@ -341,9 +334,8 @@ class BelongsToMany extends EloquentBelongsToMany
/**
* Get the name of the "where in" method for eager loading.
*
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
* @return string
*/
protected
function
whereInMethod
(
EloquentModel
$model
,
$key
)
...
...
src/Jenssegers/Mongodb/Relations/EmbedsMany.php
View file @
cc00aff8
...
...
@@ -4,10 +4,10 @@ namespace Jenssegers\Mongodb\Relations;
use
Illuminate\Database\Eloquent\Collection
;
use
Illuminate\Database\Eloquent\Model
;
use
Illuminate\Database\Eloquent\Model
as
EloquentModel
;
use
Illuminate\Pagination\LengthAwarePaginator
;
use
Illuminate\Pagination\Paginator
;
use
MongoDB\BSON\ObjectID
;
use
Illuminate\Database\Eloquent\Model
as
EloquentModel
;
class
EmbedsMany
extends
EmbedsOneOrMany
{
...
...
@@ -33,8 +33,7 @@ class EmbedsMany extends EmbedsOneOrMany
/**
* Save a new model and attach it to the parent model.
*
* @param Model $model
* @param Model $model
* @return Model|bool
*/
public
function
performInsert
(
Model
$model
)
...
...
@@ -63,8 +62,7 @@ class EmbedsMany extends EmbedsOneOrMany
/**
* Save an existing model and attach it to the parent model.
*
* @param Model $model
* @param Model $model
* @return Model|bool
*/
public
function
performUpdate
(
Model
$model
)
...
...
@@ -95,8 +93,7 @@ class EmbedsMany extends EmbedsOneOrMany
/**
* Delete an existing model and detach it from the parent model.
*
* @param Model $model
* @param Model $model
* @return int
*/
public
function
performDelete
(
Model
$model
)
...
...
@@ -122,8 +119,7 @@ class EmbedsMany extends EmbedsOneOrMany
/**
* Associate the model instance to the given parent, without saving it to the database.
*
* @param Model $model
* @param Model $model
* @return Model
*/
public
function
associate
(
Model
$model
)
...
...
@@ -137,8 +133,7 @@ class EmbedsMany extends EmbedsOneOrMany
/**
* Dissociate the model instance from the given parent, without saving it to the database.
*
* @param mixed $ids
* @param mixed $ids
* @return int
*/
public
function
dissociate
(
$ids
=
[])
...
...
@@ -166,8 +161,7 @@ class EmbedsMany extends EmbedsOneOrMany
/**
* Destroy the embedded models for the given IDs.
*
* @param mixed $ids
* @param mixed $ids
* @return int
*/
public
function
destroy
(
$ids
=
[])
...
...
@@ -191,7 +185,6 @@ class EmbedsMany extends EmbedsOneOrMany
/**
* Delete all embedded models.
*
* @return int
*/
public
function
delete
()
...
...
@@ -208,8 +201,7 @@ class EmbedsMany extends EmbedsOneOrMany
/**
* Destroy alias.
*
* @param mixed $ids
* @param mixed $ids
* @return int
*/
public
function
detach
(
$ids
=
[])
...
...
@@ -219,8 +211,7 @@ class EmbedsMany extends EmbedsOneOrMany
/**
* Save alias.
*
* @param Model $model
* @param Model $model
* @return Model
*/
public
function
attach
(
Model
$model
)
...
...
@@ -230,8 +221,7 @@ class EmbedsMany extends EmbedsOneOrMany
/**
* Associate a new model instance to the given parent, without saving it to the database.
*
* @param Model $model
* @param Model $model
* @return Model
*/
protected
function
associateNew
(
$model
)
...
...
@@ -251,8 +241,7 @@ class EmbedsMany extends EmbedsOneOrMany
/**
* Associate an existing model instance to the given parent, without saving it to the database.
*
* @param Model $model
* @param Model $model
* @return Model
*/
protected
function
associateExisting
(
$model
)
...
...
@@ -277,8 +266,7 @@ class EmbedsMany extends EmbedsOneOrMany
/**
* Get a paginator for the "select" statement.
*
* @param int $perPage
* @param int $perPage
* @return \Illuminate\Pagination\AbstractPaginator
*/
public
function
paginate
(
$perPage
=
null
)
...
...
@@ -332,9 +320,8 @@ class EmbedsMany extends EmbedsOneOrMany
/**
* Get the name of the "where in" method for eager loading.
*
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
* @return string
*/
protected
function
whereInMethod
(
EloquentModel
$model
,
$key
)
...
...
src/Jenssegers/Mongodb/Relations/EmbedsOne.php
View file @
cc00aff8
...
...
@@ -3,8 +3,8 @@
namespace
Jenssegers\Mongodb\Relations
;
use
Illuminate\Database\Eloquent\Model
;
use
MongoDB\BSON\ObjectID
;
use
Illuminate\Database\Eloquent\Model
as
EloquentModel
;
use
MongoDB\BSON\ObjectID
;
class
EmbedsOne
extends
EmbedsOneOrMany
{
...
...
@@ -30,8 +30,7 @@ class EmbedsOne extends EmbedsOneOrMany
/**
* Save a new model and attach it to the parent model.
*
* @param Model $model
* @param Model $model
* @return Model|bool
*/
public
function
performInsert
(
Model
$model
)
...
...
@@ -59,8 +58,7 @@ class EmbedsOne extends EmbedsOneOrMany
/**
* Save an existing model and attach it to the parent model.
*
* @param Model $model
* @param Model $model
* @return Model|bool
*/
public
function
performUpdate
(
Model
$model
)
...
...
@@ -85,7 +83,6 @@ class EmbedsOne extends EmbedsOneOrMany
/**
* Delete an existing model and detach it from the parent model.
*
* @return int
*/
public
function
performDelete
()
...
...
@@ -109,8 +106,7 @@ class EmbedsOne extends EmbedsOneOrMany
/**
* Attach the model to its parent.
*
* @param Model $model
* @param Model $model
* @return Model
*/
public
function
associate
(
Model
$model
)
...
...
@@ -120,7 +116,6 @@ class EmbedsOne extends EmbedsOneOrMany
/**
* Detach the model from its parent.
*
* @return Model
*/
public
function
dissociate
()
...
...
@@ -130,7 +125,6 @@ class EmbedsOne extends EmbedsOneOrMany
/**
* Delete all embedded models.
*
* @return int
*/
public
function
delete
()
...
...
@@ -140,9 +134,8 @@ class EmbedsOne extends EmbedsOneOrMany
/**
* Get the name of the "where in" method for eager loading.
*
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
* @return string
*/
protected
function
whereInMethod
(
EloquentModel
$model
,
$key
)
...
...
src/Jenssegers/Mongodb/Relations/EmbedsOneOrMany.php
View file @
cc00aff8
...
...
@@ -4,42 +4,38 @@ namespace Jenssegers\Mongodb\Relations;
use
Illuminate\Database\Eloquent\Builder
;
use
Illuminate\Database\Eloquent\Collection
;
use
Illuminate\Database\Eloquent\Model
as
EloquentModel
;
use
Illuminate\Database\Eloquent\Relations\Relation
;
use
Jenssegers\Mongodb\Eloquent\Model
;
use
Illuminate\Database\Eloquent\Model
as
EloquentModel
;
abstract
class
EmbedsOneOrMany
extends
Relation
{
/**
* The local key of the parent model.
*
* @var string
*/
protected
$localKey
;
/**
* The foreign key of the parent model.
*
* @var string
*/
protected
$foreignKey
;
/**
* The "name" of the relationship.
*
* @var string
*/
protected
$relation
;
/**
* Create a new embeds many relationship instance.
*
* @param Builder $query
* @param Model $parent
* @param Model $related
* @param string $localKey
* @param string $foreignKey
* @param string $relation
* @param Builder $query
* @param Model $parent
* @param Model $related
* @param string $localKey
* @param string $foreignKey
* @param string $relation
*/
public
function
__construct
(
Builder
$query
,
Model
$parent
,
Model
$related
,
$localKey
,
$foreignKey
,
$relation
)
{
...
...
@@ -94,9 +90,7 @@ abstract class EmbedsOneOrMany extends Relation
/**
* Shorthand to get the results of the relationship.
*
* @param array $columns
*
* @param array $columns
* @return Collection
*/
public
function
get
(
$columns
=
[
'*'
])
...
...
@@ -106,7 +100,6 @@ abstract class EmbedsOneOrMany extends Relation
/**
* Get the number of embedded models.
*
* @return int
*/
public
function
count
()
...
...
@@ -116,8 +109,7 @@ abstract class EmbedsOneOrMany extends Relation
/**
* Attach a model instance to the parent model.
*
* @param Model $model
* @param Model $model
* @return Model|bool
*/
public
function
save
(
Model
$model
)
...
...
@@ -129,8 +121,7 @@ abstract class EmbedsOneOrMany extends Relation
/**
* Attach a collection of models to the parent instance.
*
* @param Collection|array $models
* @param Collection|array $models
* @return Collection|array
*/
public
function
saveMany
(
$models
)
...
...
@@ -144,8 +135,7 @@ abstract class EmbedsOneOrMany extends Relation
/**
* Create a new instance of the related model.
*
* @param array $attributes
* @param array $attributes
* @return Model
*/
public
function
create
(
array
$attributes
=
[])
...
...
@@ -164,8 +154,7 @@ abstract class EmbedsOneOrMany extends Relation
/**
* Create an array of new instances of the related model.
*
* @param array $records
* @param array $records
* @return array
*/
public
function
createMany
(
array
$records
)
...
...
@@ -181,8 +170,7 @@ abstract class EmbedsOneOrMany extends Relation
/**
* Transform single ID, single Model or array of Models into an array of IDs.
*
* @param mixed $ids
* @param mixed $ids
* @return array
*/
protected
function
getIdsArrayFrom
(
$ids
)
...
...
@@ -236,8 +224,7 @@ abstract class EmbedsOneOrMany extends Relation
/**
* Get the foreign key value for the relation.
*
* @param mixed $id
* @param mixed $id
* @return mixed
*/
protected
function
getForeignKeyValue
(
$id
)
...
...
@@ -252,8 +239,7 @@ abstract class EmbedsOneOrMany extends Relation
/**
* Convert an array of records to a Collection.
*
* @param array $records
* @param array $records
* @return Collection
*/
protected
function
toCollection
(
array
$records
=
[])
...
...
@@ -273,8 +259,7 @@ abstract class EmbedsOneOrMany extends Relation
/**
* Create a related model instanced.
*
* @param array $attributes
* @param array $attributes
* @return Model
*/
protected
function
toModel
(
$attributes
=
[])
...
...
@@ -302,7 +287,6 @@ abstract class EmbedsOneOrMany extends Relation
/**
* Get the relation instance of the parent.
*
* @return Relation
*/
protected
function
getParentRelation
()
...
...
@@ -332,7 +316,6 @@ abstract class EmbedsOneOrMany extends Relation
/**
* Check if this relation is nested in another relation.
*
* @return bool
*/
protected
function
isNested
()
...
...
@@ -342,8 +325,7 @@ abstract class EmbedsOneOrMany extends Relation
/**
* Get the fully qualified local key name.
*
* @param string $glue
* @param string $glue
* @return string
*/
protected
function
getPathHierarchy
(
$glue
=
'.'
)
...
...
@@ -369,7 +351,6 @@ abstract class EmbedsOneOrMany extends Relation
/**
* Get the primary key value of the parent.
*
* @return string
*/
protected
function
getParentKey
()
...
...
@@ -379,7 +360,6 @@ abstract class EmbedsOneOrMany extends Relation
/**
* Return update values
*
* @param $array
* @param string $prepend
* @return array
...
...
@@ -389,7 +369,7 @@ abstract class EmbedsOneOrMany extends Relation
$results
=
[];
foreach
(
$array
as
$key
=>
$value
)
{
$results
[
$prepend
.
$key
]
=
$value
;
$results
[
$prepend
.
$key
]
=
$value
;
}
return
$results
;
...
...
@@ -397,7 +377,6 @@ abstract class EmbedsOneOrMany extends Relation
/**
* Get the foreign key for the relationship.
*
* @return string
*/
public
function
getQualifiedForeignKeyName
()
...
...
@@ -407,9 +386,8 @@ abstract class EmbedsOneOrMany extends Relation
/**
* Get the name of the "where in" method for eager loading.
*
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
* @return string
*/
protected
function
whereInMethod
(
EloquentModel
$model
,
$key
)
...
...
src/Jenssegers/Mongodb/Relations/HasMany.php
View file @
cc00aff8
...
...
@@ -3,14 +3,13 @@
namespace
Jenssegers\Mongodb\Relations
;
use
Illuminate\Database\Eloquent\Builder
;
use
Illuminate\Database\Eloquent\Relations\HasMany
as
EloquentHasMany
;
use
Illuminate\Database\Eloquent\Model
as
EloquentModel
;
use
Illuminate\Database\Eloquent\Relations\HasMany
as
EloquentHasMany
;
class
HasMany
extends
EloquentHasMany
{
/**
* Get the plain foreign key.
*
* @return string
*/
public
function
getForeignKeyName
()
...
...
@@ -20,7 +19,6 @@ class HasMany extends EloquentHasMany
/**
* Get the plain foreign key.
*
* @return string
*/
public
function
getPlainForeignKey
()
...
...
@@ -30,7 +28,6 @@ class HasMany extends EloquentHasMany
/**
* Get the key for comparing against the parent key in "has" query.
*
* @return string
*/
public
function
getHasCompareKey
()
...
...
@@ -50,9 +47,8 @@ class HasMany extends EloquentHasMany
/**
* Add the constraints for a relationship count query.
*
* @param Builder $query
* @param Builder $parent
* @param Builder $query
* @param Builder $parent
* @return Builder
*/
public
function
getRelationCountQuery
(
Builder
$query
,
Builder
$parent
)
...
...
@@ -64,10 +60,9 @@ class HasMany extends EloquentHasMany
/**
* Add the constraints for a relationship query.
*
* @param Builder $query
* @param Builder $parent
* @param array|mixed $columns
* @param Builder $query
* @param Builder $parent
* @param array|mixed $columns
* @return Builder
*/
public
function
getRelationQuery
(
Builder
$query
,
Builder
$parent
,
$columns
=
[
'*'
])
...
...
@@ -81,9 +76,8 @@ class HasMany extends EloquentHasMany
/**
* Get the name of the "where in" method for eager loading.
*
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
* @return string
*/
protected
function
whereInMethod
(
EloquentModel
$model
,
$key
)
...
...
src/Jenssegers/Mongodb/Relations/HasOne.php
View file @
cc00aff8
...
...
@@ -3,14 +3,13 @@
namespace
Jenssegers\Mongodb\Relations
;
use
Illuminate\Database\Eloquent\Builder
;
use
Illuminate\Database\Eloquent\Relations\HasOne
as
EloquentHasOne
;
use
Illuminate\Database\Eloquent\Model
as
EloquentModel
;
use
Illuminate\Database\Eloquent\Relations\HasOne
as
EloquentHasOne
;
class
HasOne
extends
EloquentHasOne
{
/**
* Get the key for comparing against the parent key in "has" query.
*
* @return string
*/
public
function
getForeignKeyName
()
...
...
@@ -20,7 +19,6 @@ class HasOne extends EloquentHasOne
/**
* Get the key for comparing against the parent key in "has" query.
*
* @return string
*/
public
function
getHasCompareKey
()
...
...
@@ -30,7 +28,6 @@ class HasOne extends EloquentHasOne
/**
* Get the plain foreign key.
*
* @return string
*/
public
function
getPlainForeignKey
()
...
...
@@ -50,9 +47,8 @@ class HasOne extends EloquentHasOne
/**
* Add the constraints for a relationship count query.
*
* @param Builder $query
* @param Builder $parent
* @param Builder $query
* @param Builder $parent
* @return Builder
*/
public
function
getRelationCountQuery
(
Builder
$query
,
Builder
$parent
)
...
...
@@ -64,10 +60,9 @@ class HasOne extends EloquentHasOne
/**
* Add the constraints for a relationship query.
*
* @param Builder $query
* @param Builder $parent
* @param array|mixed $columns
* @param Builder $query
* @param Builder $parent
* @param array|mixed $columns
* @return Builder
*/
public
function
getRelationQuery
(
Builder
$query
,
Builder
$parent
,
$columns
=
[
'*'
])
...
...
@@ -78,12 +73,11 @@ class HasOne extends EloquentHasOne
return
$query
->
where
(
$this
->
getForeignKeyName
(),
'exists'
,
true
);
}
/**
* Get the name of the "where in" method for eager loading.
*
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
* @return string
*/
protected
function
whereInMethod
(
EloquentModel
$model
,
$key
)
...
...
src/Jenssegers/Mongodb/Relations/MorphTo.php
View file @
cc00aff8
...
...
@@ -2,8 +2,8 @@
namespace
Jenssegers\Mongodb\Relations
;
use
Illuminate\Database\Eloquent\Relations\MorphTo
as
EloquentMorphTo
;
use
Illuminate\Database\Eloquent\Model
as
EloquentModel
;
use
Illuminate\Database\Eloquent\Relations\MorphTo
as
EloquentMorphTo
;
class
MorphTo
extends
EloquentMorphTo
{
...
...
@@ -36,7 +36,6 @@ class MorphTo extends EloquentMorphTo
/**
* Get the owner key with backwards compatible support.
*
* @return string
*/
public
function
getOwnerKey
()
...
...
@@ -46,9 +45,8 @@ class MorphTo extends EloquentMorphTo
/**
* Get the name of the "where in" method for eager loading.
*
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
* @param \Illuminate\Database\Eloquent\Model $model
* @param string $key
* @return string
*/
protected
function
whereInMethod
(
EloquentModel
$model
,
$key
)
...
...
src/Jenssegers/Mongodb/Schema/Blueprint.php
View file @
cc00aff8
...
...
@@ -8,21 +8,18 @@ class Blueprint extends \Illuminate\Database\Schema\Blueprint
{
/**
* The MongoConnection object for this blueprint.
*
* @var \Jenssegers\Mongodb\Connection
*/
protected
$connection
;
/**
* The MongoCollection object for this blueprint.
*
* @var \Jenssegers\Mongodb\Collection|\MongoDB\Collection
*/
protected
$collection
;
/**
* Fluent columns.
*
* @var array
*/
protected
$columns
=
[];
...
...
@@ -112,8 +109,7 @@ class Blueprint extends \Illuminate\Database\Schema\Blueprint
/**
* Specify a non blocking index for the collection.
*
* @param string|array $columns
* @param string|array $columns
* @return Blueprint
*/
public
function
background
(
$columns
=
null
)
...
...
@@ -127,9 +123,8 @@ class Blueprint extends \Illuminate\Database\Schema\Blueprint
/**
* Specify a sparse index for the collection.
*
* @param string|array $columns
* @param array $options
* @param string|array $columns
* @param array $options
* @return Blueprint
*/
public
function
sparse
(
$columns
=
null
,
$options
=
[])
...
...
@@ -145,10 +140,9 @@ class Blueprint extends \Illuminate\Database\Schema\Blueprint
/**
* Specify a geospatial index for the collection.
*
* @param string|array $columns
* @param string $index
* @param array $options
* @param string|array $columns
* @param string $index
* @param array $options
* @return Blueprint
*/
public
function
geospatial
(
$columns
=
null
,
$index
=
'2d'
,
$options
=
[])
...
...
@@ -171,9 +165,8 @@ class Blueprint extends \Illuminate\Database\Schema\Blueprint
/**
* Specify the number of seconds after wich a document should be considered expired based,
* on the given single-field index containing a date.
*
* @param string|array $columns
* @param int $seconds
* @param string|array $columns
* @param int $seconds
* @return Blueprint
*/
public
function
expire
(
$columns
,
$seconds
)
...
...
@@ -218,9 +211,8 @@ class Blueprint extends \Illuminate\Database\Schema\Blueprint
/**
* Specify a sparse and unique index for the collection.
*
* @param string|array $columns
* @param array $options
* @param string|array $columns
* @param array $options
* @return Blueprint
*/
public
function
sparse_and_unique
(
$columns
=
null
,
$options
=
[])
...
...
@@ -237,8 +229,7 @@ class Blueprint extends \Illuminate\Database\Schema\Blueprint
/**
* Allow fluent columns.
*
* @param string|array $columns
* @param string|array $columns
* @return string|array
*/
protected
function
fluent
(
$columns
=
null
)
...
...
@@ -254,7 +245,6 @@ class Blueprint extends \Illuminate\Database\Schema\Blueprint
/**
* Allows the use of unsupported schema methods.
*
* @param $method
* @param $args
* @return Blueprint
...
...
src/Jenssegers/Mongodb/Schema/Builder.php
View file @
cc00aff8
...
...
@@ -33,8 +33,7 @@ class Builder extends \Illuminate\Database\Schema\Builder
/**
* Determine if the given collection exists.
*
* @param string $collection
* @param string $collection
* @return bool
*/
public
function
hasCollection
(
$collection
)
...
...
@@ -60,9 +59,8 @@ class Builder extends \Illuminate\Database\Schema\Builder
/**
* Modify a collection on the schema.
*
* @param string $collection
* @param Closure $callback
* @param string $collection
* @param Closure $callback
* @return bool
*/
public
function
collection
(
$collection
,
Closure
$callback
)
...
...
@@ -138,7 +136,6 @@ class Builder extends \Illuminate\Database\Schema\Builder
/**
* Get all of the collections names for the database.
*
* @return array
*/
protected
function
getAllCollections
()
...
...
src/Jenssegers/Mongodb/Validation/DatabasePresenceVerifier.php
View file @
cc00aff8
...
...
@@ -6,13 +6,12 @@ class DatabasePresenceVerifier extends \Illuminate\Validation\DatabasePresenceVe
{
/**
* Count the number of objects in a collection having the given value.
*
* @param string $collection
* @param string $column
* @param string $value
* @param int $excludeId
* @param string $idColumn
* @param array $extra
* @param string $collection
* @param string $column
* @param string $value
* @param int $excludeId
* @param string $idColumn
* @param array $extra
* @return int
*/
public
function
getCount
(
$collection
,
$column
,
$value
,
$excludeId
=
null
,
$idColumn
=
null
,
array
$extra
=
[])
...
...
@@ -32,11 +31,10 @@ class DatabasePresenceVerifier extends \Illuminate\Validation\DatabasePresenceVe
/**
* Count the number of objects in a collection with the given values.
*
* @param string $collection
* @param string $column
* @param array $values
* @param array $extra
* @param string $collection
* @param string $column
* @param array $values
* @param array $extra
* @return int
*/
public
function
getMultiCount
(
$collection
,
$column
,
array
$values
,
array
$extra
=
[])
...
...
tests/AuthTest.php
View file @
cc00aff8
...
...
@@ -2,6 +2,7 @@
use
Illuminate\Auth\Passwords\PasswordBroker
;
use
Illuminate\Foundation\Application
;
use
MongoDB\BSON\UTCDateTime
;
class
AuthTest
extends
TestCase
{
...
...
@@ -15,8 +16,8 @@ class AuthTest extends TestCase
public
function
testAuthAttempt
()
{
$user
=
User
::
create
([
'name'
=>
'John Doe'
,
'email'
=>
'john@doe.com'
,
'name'
=>
'John Doe'
,
'email'
=>
'john@doe.com'
,
'password'
=>
Hash
::
make
(
'foobar'
),
]);
...
...
@@ -37,8 +38,8 @@ class AuthTest extends TestCase
$broker
=
new
PasswordBroker
(
$tokens
,
$users
,
$mailer
,
''
);
$user
=
User
::
create
([
'name'
=>
'John Doe'
,
'email'
=>
'john@doe.com'
,
'name'
=>
'John Doe'
,
'email'
=>
'john@doe.com'
,
'password'
=>
Hash
::
make
(
'foobar'
),
]);
...
...
@@ -49,13 +50,13 @@ class AuthTest extends TestCase
$reminder
=
DB
::
collection
(
'password_resets'
)
->
first
();
$this
->
assertEquals
(
'john@doe.com'
,
$reminder
[
'email'
]);
$this
->
assertNotNull
(
$reminder
[
'token'
]);
$this
->
assertInstanceOf
(
'MongoDB\BSON\UTCDateTime'
,
$reminder
[
'created_at'
]);
$this
->
assertInstanceOf
(
UTCDateTime
::
class
,
$reminder
[
'created_at'
]);
$credentials
=
[
'email'
=>
'john@doe.com'
,
'password'
=>
'foobar'
,
'email'
=>
'john@doe.com'
,
'password'
=>
'foobar'
,
'password_confirmation'
=>
'foobar'
,
'token'
=>
$reminder
[
'token'
],
'token'
=>
$reminder
[
'token'
],
];
$response
=
$broker
->
reset
(
$credentials
,
function
(
$user
,
$password
)
{
...
...
tests/CollectionTest.php
View file @
cc00aff8
<?php
declare
(
strict_types
=
1
);
use
Jenssegers\Mongodb\Connection
;
use
Jenssegers\Mongodb\Collection
;
use
MongoDB\Collection
as
MongoColl
ection
;
use
Jenssegers\Mongodb\Conn
ection
;
use
MongoDB\BSON\ObjectID
;
use
MongoDB\Collection
as
MongoCollection
;
class
CollectionTest
extends
TestCase
{
...
...
tests/EmbeddedRelationsTest.php
View file @
cc00aff8
This diff is collapsed.
Click to expand it.
tests/GeospatialTest.php
View file @
cc00aff8
...
...
@@ -54,28 +54,30 @@ class GeospatialTest extends TestCase
$locations
=
Location
::
where
(
'location'
,
'geoWithin'
,
[
'$geometry'
=>
[
'type'
=>
'Polygon'
,
'coordinates'
=>
[[
[
-
0.1450383
,
51.5069158
,
],
[
-
0.1367563
,
51.5100913
,
],
[
-
0.1270247
,
51.5013233
,
],
[
-
0.1460866
,
51.4952136
,
],
'coordinates'
=>
[
[
-
0.1450383
,
51.5069158
,
[
-
0.1450383
,
51.5069158
,
],
[
-
0.1367563
,
51.5100913
,
],
[
-
0.1270247
,
51.5013233
,
],
[
-
0.1460866
,
51.4952136
,
],
[
-
0.1450383
,
51.5069158
,
],
],
]
]
,
],
],
]);
...
...
@@ -105,7 +107,7 @@ class GeospatialTest extends TestCase
51.5078646
,
],
],
]
]
,
]);
$this
->
assertEquals
(
1
,
$locations
->
count
());
...
...
tests/HybridRelationsTest.php
View file @
cc00aff8
<?php
declare
(
strict_types
=
1
);
use
Illuminate\Database\MySqlConnection
;
class
HybridRelationsTest
extends
TestCase
{
public
function
setUp
()
:
void
...
...
@@ -22,8 +24,8 @@ class HybridRelationsTest extends TestCase
public
function
testMysqlRelations
()
{
$user
=
new
MysqlUser
;
$this
->
assertInstanceOf
(
'MysqlUser'
,
$user
);
$this
->
assertInstanceOf
(
'Illuminate\Database\MySqlConnection'
,
$user
->
getConnection
());
$this
->
assertInstanceOf
(
MysqlUser
::
class
,
$user
);
$this
->
assertInstanceOf
(
MySqlConnection
::
class
,
$user
->
getConnection
());
// Mysql User
$user
->
name
=
"John Doe"
;
...
...
@@ -80,10 +82,10 @@ class HybridRelationsTest extends TestCase
{
$user
=
new
MysqlUser
;
$otherUser
=
new
MysqlUser
;
$this
->
assertInstanceOf
(
'MysqlUser'
,
$user
);
$this
->
assertInstanceOf
(
'Illuminate\Database\MySqlConnection'
,
$user
->
getConnection
());
$this
->
assertInstanceOf
(
'MysqlUser'
,
$otherUser
);
$this
->
assertInstanceOf
(
'Illuminate\Database\MySqlConnection'
,
$otherUser
->
getConnection
());
$this
->
assertInstanceOf
(
MysqlUser
::
class
,
$user
);
$this
->
assertInstanceOf
(
MySqlConnection
::
class
,
$user
->
getConnection
());
$this
->
assertInstanceOf
(
MysqlUser
::
class
,
$otherUser
);
$this
->
assertInstanceOf
(
MySqlConnection
::
class
,
$otherUser
->
getConnection
());
//MySql User
$user
->
name
=
"John Doe"
;
...
...
@@ -134,10 +136,10 @@ class HybridRelationsTest extends TestCase
{
$user
=
new
MysqlUser
;
$otherUser
=
new
MysqlUser
;
$this
->
assertInstanceOf
(
'MysqlUser'
,
$user
);
$this
->
assertInstanceOf
(
'Illuminate\Database\MySqlConnection'
,
$user
->
getConnection
());
$this
->
assertInstanceOf
(
'MysqlUser'
,
$otherUser
);
$this
->
assertInstanceOf
(
'Illuminate\Database\MySqlConnection'
,
$otherUser
->
getConnection
());
$this
->
assertInstanceOf
(
MysqlUser
::
class
,
$user
);
$this
->
assertInstanceOf
(
MySqlConnection
::
class
,
$user
->
getConnection
());
$this
->
assertInstanceOf
(
MysqlUser
::
class
,
$otherUser
);
$this
->
assertInstanceOf
(
MySqlConnection
::
class
,
$otherUser
->
getConnection
());
//MySql User
$user
->
name
=
"John Doe"
;
...
...
tests/ModelTest.php
View file @
cc00aff8
...
...
@@ -551,7 +551,7 @@ class ModelTest extends TestCase
public
function
testChunkById
()
:
void
{
User
::
create
([
'name'
=>
'fork'
,
'tags'
=>
[
'sharp'
,
'pointy'
]]);
User
::
create
([
'name'
=>
'fork'
,
'tags'
=>
[
'sharp'
,
'pointy'
]]);
User
::
create
([
'name'
=>
'spork'
,
'tags'
=>
[
'sharp'
,
'pointy'
,
'round'
,
'bowl'
]]);
User
::
create
([
'name'
=>
'spoon'
,
'tags'
=>
[
'round'
,
'bowl'
]]);
...
...
tests/QueryBuilderTest.php
View file @
cc00aff8
This diff is collapsed.
Click to expand it.
tests/QueryTest.php
View file @
cc00aff8
...
...
@@ -131,7 +131,7 @@ class QueryTest extends TestCase
$this
->
assertCount
(
4
,
$users
);
$users
=
User
::
whereNotNull
(
'age'
)
->
whereNotIn
(
'age'
,
[
33
,
35
])
->
get
();
->
whereNotIn
(
'age'
,
[
33
,
35
])
->
get
();
$this
->
assertCount
(
3
,
$users
);
}
...
...
@@ -218,7 +218,7 @@ class QueryTest extends TestCase
{
$users
=
User
::
where
(
'title'
,
'admin'
)
->
orWhere
(
function
(
$query
)
{
$query
->
where
(
'name'
,
'Tommy Toe'
)
->
orWhere
(
'name'
,
'Error'
);
->
orWhere
(
'name'
,
'Error'
);
})
->
get
();
...
...
@@ -226,7 +226,7 @@ class QueryTest extends TestCase
$users
=
User
::
where
(
'title'
,
'user'
)
->
where
(
function
(
$query
)
{
$query
->
where
(
'age'
,
35
)
->
orWhere
(
'name'
,
'like'
,
'%harry%'
);
->
orWhere
(
'name'
,
'like'
,
'%harry%'
);
})
->
get
();
...
...
@@ -234,31 +234,31 @@ class QueryTest extends TestCase
$users
=
User
::
where
(
'age'
,
35
)
->
orWhere
(
function
(
$query
)
{
$query
->
where
(
'title'
,
'admin'
)
->
orWhere
(
'name'
,
'Error'
);
->
orWhere
(
'name'
,
'Error'
);
})
->
get
();
$this
->
assertCount
(
5
,
$users
);
$users
=
User
::
whereNull
(
'deleted_at'
)
->
where
(
'title'
,
'admin'
)
->
where
(
function
(
$query
)
{
$query
->
where
(
'age'
,
'>'
,
15
)
->
orWhere
(
'name'
,
'Harry Hoe'
);
})
->
get
();
->
where
(
'title'
,
'admin'
)
->
where
(
function
(
$query
)
{
$query
->
where
(
'age'
,
'>'
,
15
)
->
orWhere
(
'name'
,
'Harry Hoe'
);
})
->
get
();
$this
->
assertEquals
(
3
,
$users
->
count
());
$users
=
User
::
whereNull
(
'deleted_at'
)
->
where
(
function
(
$query
)
{
$query
->
where
(
'name'
,
'Harry Hoe'
)
->
orWhere
(
function
(
$query
)
{
$query
->
where
(
'age'
,
'>'
,
15
)
->
where
(
'title'
,
'<>'
,
'admin'
);
});
})
->
get
();
->
where
(
function
(
$query
)
{
$query
->
where
(
'name'
,
'Harry Hoe'
)
->
orWhere
(
function
(
$query
)
{
$query
->
where
(
'age'
,
'>'
,
15
)
->
where
(
'title'
,
'<>'
,
'admin'
);
});
})
->
get
();
$this
->
assertEquals
(
5
,
$users
->
count
());
}
...
...
@@ -271,7 +271,7 @@ class QueryTest extends TestCase
$this
->
assertCount
(
6
,
$users
);
$where1
=
[
'age'
=>
[
'$gt'
=>
30
,
'$lte'
=>
35
]];
$where2
=
[
'age'
=>
[
'$gt'
=>
35
,
'$lt'
=>
40
]];
$where2
=
[
'age'
=>
[
'$gt'
=>
35
,
'$lt'
=>
40
]];
$users
=
User
::
whereRaw
(
$where1
)
->
orWhereRaw
(
$where2
)
->
get
();
$this
->
assertCount
(
6
,
$users
);
...
...
@@ -282,18 +282,18 @@ class QueryTest extends TestCase
$users
=
User
::
where
(
function
(
$query
)
{
$query
->
where
(
'age'
,
35
)
->
orWhere
(
'age'
,
33
);
})
->
where
(
function
(
$query
)
{
$query
->
where
(
'name'
,
'John Doe'
)
->
orWhere
(
'name'
,
'Jane Doe'
);
})
->
get
();
->
where
(
function
(
$query
)
{
$query
->
where
(
'name'
,
'John Doe'
)
->
orWhere
(
'name'
,
'Jane Doe'
);
})
->
get
();
$this
->
assertCount
(
2
,
$users
);
$users
=
User
::
where
(
function
(
$query
)
{
$query
->
orWhere
(
'age'
,
35
)
->
orWhere
(
'age'
,
33
);
})
->
where
(
function
(
$query
)
{
$query
->
orWhere
(
'name'
,
'John Doe'
)
->
orWhere
(
'name'
,
'Jane Doe'
);
})
->
get
();
->
where
(
function
(
$query
)
{
$query
->
orWhere
(
'name'
,
'John Doe'
)
->
orWhere
(
'name'
,
'Jane Doe'
);
})
->
get
();
$this
->
assertCount
(
2
,
$users
);
}
...
...
tests/RelationsTest.php
View file @
cc00aff8
<?php
declare
(
strict_types
=
1
);
use
Illuminate\Database\Eloquent\Collection
;
class
RelationsTest
extends
TestCase
{
public
function
tearDown
()
:
void
...
...
@@ -90,7 +92,7 @@ class RelationsTest extends TestCase
$items
=
Item
::
with
(
'user'
)
->
orderBy
(
'user_id'
,
'desc'
)
->
get
();
$user
=
$items
[
0
]
->
getRelation
(
'user'
);
$this
->
assertInstanceOf
(
'User'
,
$user
);
$this
->
assertInstanceOf
(
User
::
class
,
$user
);
$this
->
assertEquals
(
'John Doe'
,
$user
->
name
);
$this
->
assertCount
(
1
,
$items
[
0
]
->
getRelations
());
$this
->
assertNull
(
$items
[
3
]
->
getRelation
(
'user'
));
...
...
@@ -108,7 +110,7 @@ class RelationsTest extends TestCase
$items
=
$user
->
getRelation
(
'items'
);
$this
->
assertCount
(
3
,
$items
);
$this
->
assertInstanceOf
(
'Item'
,
$items
[
0
]);
$this
->
assertInstanceOf
(
Item
::
class
,
$items
[
0
]);
}
public
function
testWithHasOne
()
:
void
...
...
@@ -120,7 +122,7 @@ class RelationsTest extends TestCase
$user
=
User
::
with
(
'role'
)
->
find
(
$user
->
_id
);
$role
=
$user
->
getRelation
(
'role'
);
$this
->
assertInstanceOf
(
'Role'
,
$role
);
$this
->
assertInstanceOf
(
Role
::
class
,
$role
);
$this
->
assertEquals
(
'admin'
,
$role
->
type
);
}
...
...
@@ -134,7 +136,7 @@ class RelationsTest extends TestCase
$user
=
User
::
find
(
$user
->
_id
);
$items
=
$user
->
items
;
$this
->
assertCount
(
1
,
$items
);
$this
->
assertInstanceOf
(
'Item'
,
$items
[
0
]);
$this
->
assertInstanceOf
(
Item
::
class
,
$items
[
0
]);
$this
->
assertEquals
(
$user
->
_id
,
$items
[
0
]
->
user_id
);
// Has one
...
...
@@ -144,7 +146,7 @@ class RelationsTest extends TestCase
$user
=
User
::
find
(
$user
->
_id
);
$role
=
$user
->
role
;
$this
->
assertInstanceOf
(
'Role'
,
$role
);
$this
->
assertInstanceOf
(
Role
::
class
,
$role
);
$this
->
assertEquals
(
'admin'
,
$role
->
type
);
$this
->
assertEquals
(
$user
->
_id
,
$role
->
user_id
);
}
...
...
@@ -168,18 +170,18 @@ class RelationsTest extends TestCase
$clients
=
$user
->
getRelation
(
'clients'
);
$users
=
$client
->
getRelation
(
'users'
);
$this
->
assertInstanceOf
(
'Illuminate\Database\Eloquent\Collection'
,
$users
);
$this
->
assertInstanceOf
(
'Illuminate\Database\Eloquent\Collection'
,
$clients
);
$this
->
assertInstanceOf
(
'Client'
,
$clients
[
0
]);
$this
->
assertInstanceOf
(
'User'
,
$users
[
0
]);
$this
->
assertInstanceOf
(
Collection
::
class
,
$users
);
$this
->
assertInstanceOf
(
Collection
::
class
,
$clients
);
$this
->
assertInstanceOf
(
Client
::
class
,
$clients
[
0
]);
$this
->
assertInstanceOf
(
User
::
class
,
$users
[
0
]);
$this
->
assertCount
(
2
,
$user
->
clients
);
$this
->
assertCount
(
1
,
$client
->
users
);
// Now create a new user to an existing client
$user
=
$client
->
users
()
->
create
([
'name'
=>
'Jane Doe'
]);
$this
->
assertInstanceOf
(
'Illuminate\Database\Eloquent\Collection'
,
$user
->
clients
);
$this
->
assertInstanceOf
(
'Client'
,
$user
->
clients
->
first
());
$this
->
assertInstanceOf
(
Collection
::
class
,
$user
->
clients
);
$this
->
assertInstanceOf
(
Client
::
class
,
$user
->
clients
->
first
());
$this
->
assertCount
(
1
,
$user
->
clients
);
// Get user and unattached client
...
...
@@ -187,8 +189,8 @@ class RelationsTest extends TestCase
$client
=
Client
::
Where
(
'name'
,
'='
,
'Buffet Bar Inc.'
)
->
first
();
// Check the models are what they should be
$this
->
assertInstanceOf
(
'Client'
,
$client
);
$this
->
assertInstanceOf
(
'User'
,
$user
);
$this
->
assertInstanceOf
(
Client
::
class
,
$client
);
$this
->
assertInstanceOf
(
User
::
class
,
$user
);
// Assert they are not attached
$this
->
assertNotContains
(
$client
->
_id
,
$user
->
client_ids
);
...
...
@@ -377,11 +379,11 @@ class RelationsTest extends TestCase
$photos
=
Photo
::
with
(
'imageable'
)
->
get
();
$relations
=
$photos
[
0
]
->
getRelations
();
$this
->
assertArrayHasKey
(
'imageable'
,
$relations
);
$this
->
assertInstanceOf
(
'User'
,
$photos
[
0
]
->
imageable
);
$this
->
assertInstanceOf
(
User
::
class
,
$photos
[
0
]
->
imageable
);
$relations
=
$photos
[
1
]
->
getRelations
();
$this
->
assertArrayHasKey
(
'imageable'
,
$relations
);
$this
->
assertInstanceOf
(
'Client'
,
$photos
[
1
]
->
imageable
);
$this
->
assertInstanceOf
(
Client
::
class
,
$photos
[
1
]
->
imageable
);
}
public
function
testHasManyHas
()
:
void
...
...
@@ -461,14 +463,14 @@ class RelationsTest extends TestCase
$client
=
Client
::
create
([
'data'
=>
[
'client_id'
=>
35298
,
'name'
=>
'John Doe'
,
'name'
=>
'John Doe'
,
],
]);
$address
=
$client
->
addresses
()
->
create
([
'data'
=>
[
'address_id'
=>
1432
,
'city'
=>
'Paris'
,
'city'
=>
'Paris'
,
],
]);
...
...
tests/SchemaTest.php
View file @
cc00aff8
<?php
declare
(
strict_types
=
1
);
use
Jenssegers\Mongodb\Schema\Blueprint
;
class
SchemaTest
extends
TestCase
{
public
function
tearDown
()
:
void
...
...
@@ -21,7 +23,7 @@ class SchemaTest extends TestCase
$instance
=
$this
;
Schema
::
create
(
'newcollection'
,
function
(
$collection
)
use
(
$instance
)
{
$instance
->
assertInstanceOf
(
'Jenssegers\Mongodb\Schema\Blueprint'
,
$collection
);
$instance
->
assertInstanceOf
(
Blueprint
::
class
,
$collection
);
});
$this
->
assertTrue
(
Schema
::
hasCollection
(
'newcollection'
));
...
...
@@ -46,11 +48,11 @@ class SchemaTest extends TestCase
$instance
=
$this
;
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
use
(
$instance
)
{
$instance
->
assertInstanceOf
(
'Jenssegers\Mongodb\Schema\Blueprint'
,
$collection
);
$instance
->
assertInstanceOf
(
Blueprint
::
class
,
$collection
);
});
Schema
::
table
(
'newcollection'
,
function
(
$collection
)
use
(
$instance
)
{
$instance
->
assertInstanceOf
(
'Jenssegers\Mongodb\Schema\Blueprint'
,
$collection
);
$instance
->
assertInstanceOf
(
Blueprint
::
class
,
$collection
);
});
}
...
...
tests/TestCase.php
View file @
cc00aff8
...
...
@@ -7,9 +7,7 @@ class TestCase extends Orchestra\Testbench\TestCase
{
/**
* Get application providers.
*
* @param \Illuminate\Foundation\Application $app
*
* @param \Illuminate\Foundation\Application $app
* @return array
*/
protected
function
getApplicationProviders
(
$app
)
...
...
@@ -23,8 +21,7 @@ class TestCase extends Orchestra\Testbench\TestCase
/**
* Get package providers.
*
* @param \Illuminate\Foundation\Application $app
* @param \Illuminate\Foundation\Application $app
* @return array
*/
protected
function
getPackageProviders
(
$app
)
...
...
@@ -32,14 +29,13 @@ class TestCase extends Orchestra\Testbench\TestCase
return
[
Jenssegers\Mongodb\MongodbServiceProvider
::
class
,
Jenssegers\Mongodb\Auth\PasswordResetServiceProvider
::
class
,
Jenssegers\Mongodb\Validation\ValidationServiceProvider
::
class
Jenssegers\Mongodb\Validation\ValidationServiceProvider
::
class
,
];
}
/**
* Define environment setup.
*
* @param Illuminate\Foundation\Application $app
* @param Illuminate\Foundation\Application $app
* @return void
*/
protected
function
getEnvironmentSetUp
(
$app
)
...
...
@@ -63,8 +59,8 @@ class TestCase extends Orchestra\Testbench\TestCase
$app
[
'config'
]
->
set
(
'queue.default'
,
'database'
);
$app
[
'config'
]
->
set
(
'queue.connections.database'
,
[
'driver'
=>
'mongodb'
,
'table'
=>
'jobs'
,
'queue'
=>
'default'
,
'table'
=>
'jobs'
,
'queue'
=>
'default'
,
'expire'
=>
60
,
]);
}
...
...
tests/config/database.php
View file @
cc00aff8
...
...
@@ -8,27 +8,27 @@ return [
'connections'
=>
[
'mongodb'
=>
[
'name'
=>
'mongodb'
,
'driver'
=>
'mongodb'
,
'host'
=>
$mongoHost
,
'database'
=>
env
(
'MONGO_DATABASE'
,
'unittest'
),
'name'
=>
'mongodb'
,
'driver'
=>
'mongodb'
,
'host'
=>
$mongoHost
,
'database'
=>
env
(
'MONGO_DATABASE'
,
'unittest'
),
],
'dsn_mongodb'
=>
[
'driver'
=>
'mongodb'
,
'dsn'
=>
"mongodb://
$mongoHost
:
$mongoPort
"
,
'database'
=>
env
(
'MONGO_DATABASE'
,
'unittest'
),
'driver'
=>
'mongodb'
,
'dsn'
=>
"mongodb://
$mongoHost
:
$mongoPort
"
,
'database'
=>
env
(
'MONGO_DATABASE'
,
'unittest'
),
],
'mysql'
=>
[
'driver'
=>
'mysql'
,
'host'
=>
env
(
'MYSQL_HOST'
,
'mysql'
),
'database'
=>
env
(
'MYSQL_DATABASE'
,
'unittest'
),
'username'
=>
env
(
'MYSQL_USERNAME'
,
'root'
),
'password'
=>
env
(
'MYSQL_PASSWORD'
,
''
),
'charset'
=>
'utf8'
,
'driver'
=>
'mysql'
,
'host'
=>
env
(
'MYSQL_HOST'
,
'mysql'
),
'database'
=>
env
(
'MYSQL_DATABASE'
,
'unittest'
),
'username'
=>
env
(
'MYSQL_USERNAME'
,
'root'
),
'password'
=>
env
(
'MYSQL_PASSWORD'
,
''
),
'charset'
=>
'utf8'
,
'collation'
=>
'utf8_unicode_ci'
,
'prefix'
=>
''
,
'prefix'
=>
''
,
],
],
...
...
tests/config/queue.php
View file @
cc00aff8
...
...
@@ -8,8 +8,8 @@ return [
'database'
=>
[
'driver'
=>
'mongodb'
,
'table'
=>
'jobs'
,
'queue'
=>
'default'
,
'table'
=>
'jobs'
,
'queue'
=>
'default'
,
'expire'
=>
60
,
],
...
...
@@ -17,7 +17,7 @@ return [
'failed'
=>
[
'database'
=>
env
(
'MONGO_DATABASE'
),
'table'
=>
'failed_jobs'
,
'table'
=>
'failed_jobs'
,
],
];
tests/models/Book.php
View file @
cc00aff8
...
...
@@ -6,7 +6,6 @@ use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
/**
* Class Book
*
* @property string $title
* @property string $author
* @property array $chapters
...
...
tests/models/Item.php
View file @
cc00aff8
...
...
@@ -7,7 +7,6 @@ use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
/**
* Class Item
*
* @property \Carbon\Carbon $created_at
*/
class
Item
extends
Eloquent
...
...
tests/models/Scoped.php
View file @
cc00aff8
<?php
declare
(
strict_types
=
1
);
use
Jenssegers\Mongodb\Eloquent\Model
as
Eloquent
;
use
Jenssegers\Mongodb\Eloquent\Builder
;
use
Jenssegers\Mongodb\Eloquent\Model
as
Eloquent
;
class
Scoped
extends
Eloquent
{
...
...
tests/models/Soft.php
View file @
cc00aff8
...
...
@@ -6,7 +6,6 @@ use Jenssegers\Mongodb\Eloquent\SoftDeletes;
/**
* Class Soft
*
* @property \Carbon\Carbon $deleted_at
*/
class
Soft
extends
Eloquent
...
...
tests/models/User.php
View file @
cc00aff8
<?php
declare
(
strict_types
=
1
);
use
Illuminate\Notifications\Notifiable
;
use
Jenssegers\Mongodb\Eloquent\Model
as
Eloquent
;
use
Jenssegers\Mongodb\Eloquent\HybridRelations
;
use
Illuminate\Auth\Authenticatable
;
use
Illuminate\Auth\Passwords\CanResetPassword
;
use
Illuminate\Contracts\Auth\Authenticatable
as
AuthenticatableContract
;
use
Illuminate\Contracts\Auth\CanResetPassword
as
CanResetPasswordContract
;
use
Illuminate\Notifications\Notifiable
;
use
Jenssegers\Mongodb\Eloquent\HybridRelations
;
use
Jenssegers\Mongodb\Eloquent\Model
as
Eloquent
;
/**
* Class User
*
* @property string $_id
* @property string $name
* @property string $title
...
...
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