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
c16f41cd
Commit
c16f41cd
authored
Feb 03, 2016
by
Jens Segers
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Run PSR2 fixer
parent
17b80284
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
49 changed files
with
465 additions
and
634 deletions
+465
-634
Model.php
src/Jenssegers/Eloquent/Model.php
+2
-2
DatabaseTokenRepository.php
src/Jenssegers/Mongodb/Auth/DatabaseTokenRepository.php
+5
-9
PasswordResetServiceProvider.php
src/Jenssegers/Mongodb/Auth/PasswordResetServiceProvider.php
+3
-5
Collection.php
src/Jenssegers/Mongodb/Collection.php
+6
-12
Connection.php
src/Jenssegers/Mongodb/Connection.php
+8
-15
Builder.php
src/Jenssegers/Mongodb/Eloquent/Builder.php
+18
-25
HybridRelations.php
src/Jenssegers/Mongodb/Eloquent/HybridRelations.php
+16
-30
SoftDeletes.php
src/Jenssegers/Mongodb/Eloquent/SoftDeletes.php
+2
-2
Model.php
src/Jenssegers/Mongodb/Model.php
+48
-75
MongodbServiceProvider.php
src/Jenssegers/Mongodb/MongodbServiceProvider.php
+4
-7
Builder.php
src/Jenssegers/Mongodb/Query/Builder.php
+124
-164
Grammar.php
src/Jenssegers/Mongodb/Query/Grammar.php
+0
-1
Processor.php
src/Jenssegers/Mongodb/Query/Processor.php
+2
-2
BelongsTo.php
src/Jenssegers/Mongodb/Relations/BelongsTo.php
+3
-5
BelongsToMany.php
src/Jenssegers/Mongodb/Relations/BelongsToMany.php
+28
-24
EmbedsMany.php
src/Jenssegers/Mongodb/Relations/EmbedsMany.php
+33
-36
EmbedsOne.php
src/Jenssegers/Mongodb/Relations/EmbedsOne.php
+15
-14
EmbedsOneOrMany.php
src/Jenssegers/Mongodb/Relations/EmbedsOneOrMany.php
+23
-30
HasMany.php
src/Jenssegers/Mongodb/Relations/HasMany.php
+2
-3
HasOne.php
src/Jenssegers/Mongodb/Relations/HasOne.php
+2
-3
MorphTo.php
src/Jenssegers/Mongodb/Relations/MorphTo.php
+3
-5
Blueprint.php
src/Jenssegers/Mongodb/Schema/Blueprint.php
+9
-19
Builder.php
src/Jenssegers/Mongodb/Schema/Builder.php
+4
-7
AuthTest.php
tests/AuthTest.php
+4
-6
ConnectionTest.php
tests/ConnectionTest.php
+2
-2
EmbeddedRelationsTest.php
tests/EmbeddedRelationsTest.php
+2
-2
ModelTest.php
tests/ModelTest.php
+8
-11
MysqlRelationsTest.php
tests/MysqlRelationsTest.php
+2
-1
QueryBuilderTest.php
tests/QueryBuilderTest.php
+8
-8
QueryTest.php
tests/QueryTest.php
+12
-22
RelationsTest.php
tests/RelationsTest.php
+4
-6
SchemaTest.php
tests/SchemaTest.php
+23
-39
SeederTest.php
tests/SeederTest.php
+2
-2
TestCase.php
tests/TestCase.php
+2
-3
ValidationTest.php
tests/ValidationTest.php
+2
-2
Address.php
tests/models/Address.php
+2
-2
Book.php
tests/models/Book.php
+2
-1
Client.php
tests/models/Client.php
+2
-1
Group.php
tests/models/Group.php
+2
-1
Item.php
tests/models/Item.php
+2
-2
MysqlBook.php
tests/models/MysqlBook.php
+4
-6
MysqlRole.php
tests/models/MysqlRole.php
+4
-6
MysqlUser.php
tests/models/MysqlUser.php
+4
-6
Photo.php
tests/models/Photo.php
+2
-2
Role.php
tests/models/Role.php
+2
-2
Soft.php
tests/models/Soft.php
+2
-2
User.php
tests/models/User.php
+2
-1
DatabaseSeeder.php
tests/seeds/DatabaseSeeder.php
+2
-2
UserTableSeeder.php
tests/seeds/UserTableSeeder.php
+2
-1
No files found.
src/Jenssegers/Eloquent/Model.php
View file @
c16f41cd
...
...
@@ -2,8 +2,8 @@
use
Jenssegers\Mongodb\Eloquent\HybridRelations
;
abstract
class
Model
extends
\Illuminate\Database\Eloquent\Model
{
abstract
class
Model
extends
\Illuminate\Database\Eloquent\Model
{
use
HybridRelations
;
}
src/Jenssegers/Mongodb/Auth/DatabaseTokenRepository.php
View file @
c16f41cd
...
...
@@ -3,8 +3,8 @@
use
DateTime
;
use
MongoDate
;
class
DatabaseTokenRepository
extends
\Illuminate\Auth\Passwords\DatabaseTokenRepository
{
class
DatabaseTokenRepository
extends
\Illuminate\Auth\Passwords\DatabaseTokenRepository
{
/**
* Build the record payload for the table.
*
...
...
@@ -26,20 +26,16 @@ class DatabaseTokenRepository extends \Illuminate\Auth\Passwords\DatabaseTokenRe
protected
function
tokenExpired
(
$token
)
{
// Convert MongoDate to a date string.
if
(
$token
[
'created_at'
]
instanceof
MongoDate
)
{
if
(
$token
[
'created_at'
]
instanceof
MongoDate
)
{
$date
=
new
DateTime
;
$date
->
setTimestamp
(
$token
[
'created_at'
]
->
sec
);
$token
[
'created_at'
]
=
$date
->
format
(
'Y-m-d H:i:s'
);
}
elseif
(
is_array
(
$token
[
'created_at'
])
and
isset
(
$token
[
'created_at'
][
'date'
]))
{
$token
[
'created_at'
]
=
$token
[
'created_at'
][
'date'
];
}
elseif
(
is_array
(
$token
[
'created_at'
])
and
isset
(
$token
[
'created_at'
][
'date'
]))
{
$token
[
'created_at'
]
=
$token
[
'created_at'
][
'date'
];
}
return
parent
::
tokenExpired
(
$token
);
}
}
src/Jenssegers/Mongodb/Auth/PasswordResetServiceProvider.php
View file @
c16f41cd
...
...
@@ -2,8 +2,8 @@
use
Jenssegers\Mongodb\Auth\DatabaseTokenRepository
as
DbRepository
;
class
PasswordResetServiceProvider
extends
\Illuminate\Auth\Passwords\PasswordResetServiceProvider
{
class
PasswordResetServiceProvider
extends
\Illuminate\Auth\Passwords\PasswordResetServiceProvider
{
/**
* Register the token repository implementation.
*
...
...
@@ -11,8 +11,7 @@ class PasswordResetServiceProvider extends \Illuminate\Auth\Passwords\PasswordRe
*/
protected
function
registerTokenRepository
()
{
$this
->
app
->
singleton
(
'auth.password.tokens'
,
function
(
$app
)
{
$this
->
app
->
singleton
(
'auth.password.tokens'
,
function
(
$app
)
{
$connection
=
$app
[
'db'
]
->
connection
();
// The database token repository is an implementation of the token repository
...
...
@@ -25,5 +24,4 @@ class PasswordResetServiceProvider extends \Illuminate\Auth\Passwords\PasswordRe
return
new
DbRepository
(
$connection
,
$table
,
$key
,
$expire
);
});
}
}
src/Jenssegers/Mongodb/Collection.php
View file @
c16f41cd
...
...
@@ -3,8 +3,8 @@
use
Exception
;
use
MongoCollection
;
class
Collection
{
class
Collection
{
/**
* The connection instance.
*
...
...
@@ -41,8 +41,7 @@ class Collection {
$result
=
call_user_func_array
([
$this
->
collection
,
$method
],
$parameters
);
if
(
$this
->
connection
->
logging
())
{
if
(
$this
->
connection
->
logging
())
{
// Once we have run the query we will calculate the time that it took to run and
// then log the query, bindings, and execution time so we will report them on
// the event that the developer needs them. We'll log time in milliseconds.
...
...
@@ -51,14 +50,10 @@ class Collection {
$query
=
[];
// Convert the query paramters to a json string.
foreach
(
$parameters
as
$parameter
)
{
try
{
foreach
(
$parameters
as
$parameter
)
{
try
{
$query
[]
=
json_encode
(
$parameter
);
}
catch
(
Exception
$e
)
{
}
catch
(
Exception
$e
)
{
$query
[]
=
'{...}'
;
}
}
...
...
@@ -70,5 +65,4 @@ class Collection {
return
$result
;
}
}
src/Jenssegers/Mongodb/Connection.php
View file @
c16f41cd
...
...
@@ -2,8 +2,8 @@
use
MongoClient
;
class
Connection
extends
\Illuminate\Database\Connection
{
class
Connection
extends
\Illuminate\Database\Connection
{
/**
* The MongoDB database handler.
*
...
...
@@ -131,21 +131,18 @@ class Connection extends \Illuminate\Database\Connection {
{
// Add credentials as options, this makes sure the connection will not fail if
// the username or password contains strange characters.
if
(
!
empty
(
$config
[
'username'
]))
{
if
(
!
empty
(
$config
[
'username'
]))
{
$options
[
'username'
]
=
$config
[
'username'
];
}
if
(
!
empty
(
$config
[
'password'
]))
{
if
(
!
empty
(
$config
[
'password'
]))
{
$options
[
'password'
]
=
$config
[
'password'
];
}
// By default driver options is an empty array.
$driverOptions
=
[];
if
(
isset
(
$config
[
'driver_options'
])
&&
is_array
(
$config
[
'driver_options'
]))
{
if
(
isset
(
$config
[
'driver_options'
])
&&
is_array
(
$config
[
'driver_options'
]))
{
$driverOptions
=
$config
[
'driver_options'
];
}
...
...
@@ -174,19 +171,16 @@ class Connection extends \Illuminate\Database\Connection {
extract
(
$config
);
// Check if the user passed a complete dsn to the configuration.
if
(
!
empty
(
$dsn
))
{
if
(
!
empty
(
$dsn
))
{
return
$dsn
;
}
// Treat host option as array of hosts
$hosts
=
is_array
(
$host
)
?
$host
:
[
$host
];
foreach
(
$hosts
as
&
$host
)
{
foreach
(
$hosts
as
&
$host
)
{
// Check if we need to add a port to the host
if
(
strpos
(
$host
,
':'
)
===
false
and
isset
(
$port
))
{
if
(
strpos
(
$host
,
':'
)
===
false
and
isset
(
$port
))
{
$host
=
"
{
$host
}
:
{
$port
}
"
;
}
}
...
...
@@ -228,5 +222,4 @@ class Connection extends \Illuminate\Database\Connection {
{
return
call_user_func_array
([
$this
->
db
,
$method
],
$parameters
);
}
}
src/Jenssegers/Mongodb/Eloquent/Builder.php
View file @
c16f41cd
...
...
@@ -4,8 +4,8 @@ use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
use
Illuminate\Database\Eloquent\Relations\Relation
;
use
MongoCursor
;
class
Builder
extends
EloquentBuilder
{
class
Builder
extends
EloquentBuilder
{
/**
* The methods that should be returned from query builder.
*
...
...
@@ -26,8 +26,7 @@ class Builder extends EloquentBuilder {
{
// Intercept operations on embedded models and delegate logic
// to the parent relation instance.
if
(
$relation
=
$this
->
model
->
getParentRelation
())
{
if
(
$relation
=
$this
->
model
->
getParentRelation
())
{
$relation
->
performUpdate
(
$this
->
model
,
$values
);
return
1
;
...
...
@@ -46,8 +45,7 @@ class Builder extends EloquentBuilder {
{
// Intercept operations on embedded models and delegate logic
// to the parent relation instance.
if
(
$relation
=
$this
->
model
->
getParentRelation
())
{
if
(
$relation
=
$this
->
model
->
getParentRelation
())
{
$relation
->
performInsert
(
$this
->
model
,
$values
);
return
true
;
...
...
@@ -67,8 +65,7 @@ class Builder extends EloquentBuilder {
{
// Intercept operations on embedded models and delegate logic
// to the parent relation instance.
if
(
$relation
=
$this
->
model
->
getParentRelation
())
{
if
(
$relation
=
$this
->
model
->
getParentRelation
())
{
$relation
->
performInsert
(
$this
->
model
,
$values
);
return
$this
->
model
->
getKey
();
...
...
@@ -86,8 +83,7 @@ class Builder extends EloquentBuilder {
{
// Intercept operations on embedded models and delegate logic
// to the parent relation instance.
if
(
$relation
=
$this
->
model
->
getParentRelation
())
{
if
(
$relation
=
$this
->
model
->
getParentRelation
())
{
$relation
->
performDelete
(
$this
->
model
);
return
$this
->
model
->
getKey
();
...
...
@@ -108,8 +104,7 @@ class Builder extends EloquentBuilder {
{
// Intercept operations on embedded models and delegate logic
// to the parent relation instance.
if
(
$relation
=
$this
->
model
->
getParentRelation
())
{
if
(
$relation
=
$this
->
model
->
getParentRelation
())
{
$value
=
$this
->
model
->
{
$column
};
// When doing increment and decrements, Eloquent will automatically
...
...
@@ -139,8 +134,7 @@ class Builder extends EloquentBuilder {
{
// Intercept operations on embedded models and delegate logic
// to the parent relation instance.
if
(
$relation
=
$this
->
model
->
getParentRelation
())
{
if
(
$relation
=
$this
->
model
->
getParentRelation
())
{
$value
=
$this
->
model
->
{
$column
};
// When doing increment and decrements, Eloquent will automatically
...
...
@@ -174,13 +168,13 @@ class Builder extends EloquentBuilder {
$relationCount
=
array_count_values
(
$query
->
lists
(
$relation
->
getHasCompareKey
()));
// Remove unwanted related objects based on the operator and count.
$relationCount
=
array_filter
(
$relationCount
,
function
(
$counted
)
use
(
$count
,
$operator
)
{
$relationCount
=
array_filter
(
$relationCount
,
function
(
$counted
)
use
(
$count
,
$operator
)
{
// If we are comparing to 0, we always need all results.
if
(
$count
==
0
)
return
true
;
if
(
$count
==
0
)
{
return
true
;
}
switch
(
$operator
)
{
switch
(
$operator
)
{
case
'>='
:
case
'<'
:
return
$counted
>=
$count
;
...
...
@@ -197,7 +191,9 @@ class Builder extends EloquentBuilder {
$not
=
in_array
(
$operator
,
[
'<'
,
'<='
,
'!='
]);
// If we are comparing to 0, we need an additional $not flip.
if
(
$count
==
0
)
$not
=
!
$not
;
if
(
$count
==
0
)
{
$not
=
!
$not
;
}
// All related ids.
$relatedIds
=
array_keys
(
$relationCount
);
...
...
@@ -218,16 +214,14 @@ class Builder extends EloquentBuilder {
$results
=
$this
->
query
->
raw
(
$expression
);
// Convert MongoCursor results to a collection of models.
if
(
$results
instanceof
MongoCursor
)
{
if
(
$results
instanceof
MongoCursor
)
{
$results
=
iterator_to_array
(
$results
,
false
);
return
$this
->
model
->
hydrate
(
$results
);
}
// The result is a single object.
elseif
(
is_array
(
$results
)
and
array_key_exists
(
'_id'
,
$results
))
{
elseif
(
is_array
(
$results
)
and
array_key_exists
(
'_id'
,
$results
))
{
$model
=
$this
->
model
->
newFromBuilder
(
$results
);
$model
->
setConnection
(
$this
->
model
->
getConnection
());
...
...
@@ -237,5 +231,4 @@ class Builder extends EloquentBuilder {
return
$results
;
}
}
src/Jenssegers/Mongodb/Eloquent/HybridRelations.php
View file @
c16f41cd
...
...
@@ -10,8 +10,8 @@ use Jenssegers\Mongodb\Relations\HasMany;
use
Jenssegers\Mongodb\Relations\HasOne
;
use
Jenssegers\Mongodb\Relations\MorphTo
;
trait
HybridRelations
{
trait
HybridRelations
{
/**
* Define a one-to-one relationship.
*
...
...
@@ -23,8 +23,7 @@ trait HybridRelations {
public
function
hasOne
(
$related
,
$foreignKey
=
null
,
$localKey
=
null
)
{
// Check if it is a relation with an original model.
if
(
!
is_subclass_of
(
$related
,
'Jenssegers\Mongodb\Model'
))
{
if
(
!
is_subclass_of
(
$related
,
'Jenssegers\Mongodb\Model'
))
{
return
parent
::
hasOne
(
$related
,
$foreignKey
,
$localKey
);
}
...
...
@@ -50,9 +49,8 @@ trait HybridRelations {
public
function
morphOne
(
$related
,
$name
,
$type
=
null
,
$id
=
null
,
$localKey
=
null
)
{
// Check if it is a relation with an original model.
if
(
!
is_subclass_of
(
$related
,
'Jenssegers\Mongodb\Model'
))
{
return
parent
::
morphOne
(
$related
,
$name
,
$type
,
$id
,
$localKey
);
if
(
!
is_subclass_of
(
$related
,
'Jenssegers\Mongodb\Model'
))
{
return
parent
::
morphOne
(
$related
,
$name
,
$type
,
$id
,
$localKey
);
}
$instance
=
new
$related
;
...
...
@@ -77,8 +75,7 @@ trait HybridRelations {
public
function
hasMany
(
$related
,
$foreignKey
=
null
,
$localKey
=
null
)
{
// Check if it is a relation with an original model.
if
(
!
is_subclass_of
(
$related
,
'Jenssegers\Mongodb\Model'
))
{
if
(
!
is_subclass_of
(
$related
,
'Jenssegers\Mongodb\Model'
))
{
return
parent
::
hasMany
(
$related
,
$foreignKey
,
$localKey
);
}
...
...
@@ -104,8 +101,7 @@ trait HybridRelations {
public
function
morphMany
(
$related
,
$name
,
$type
=
null
,
$id
=
null
,
$localKey
=
null
)
{
// Check if it is a relation with an original model.
if
(
!
is_subclass_of
(
$related
,
'Jenssegers\Mongodb\Model'
))
{
if
(
!
is_subclass_of
(
$related
,
'Jenssegers\Mongodb\Model'
))
{
return
parent
::
morphMany
(
$related
,
$name
,
$type
,
$id
,
$localKey
);
}
...
...
@@ -137,24 +133,21 @@ trait HybridRelations {
// If no relation name was given, we will use this debug backtrace to extract
// the calling method's name and use that as the relationship name as most
// of the time this will be what we desire to use for the relationships.
if
(
is_null
(
$relation
))
{
if
(
is_null
(
$relation
))
{
list
(
$current
,
$caller
)
=
debug_backtrace
(
false
,
2
);
$relation
=
$caller
[
'function'
];
}
// Check if it is a relation with an original model.
if
(
!
is_subclass_of
(
$related
,
'Jenssegers\Mongodb\Model'
))
{
if
(
!
is_subclass_of
(
$related
,
'Jenssegers\Mongodb\Model'
))
{
return
parent
::
belongsTo
(
$related
,
$foreignKey
,
$otherKey
,
$relation
);
}
// If no foreign key was supplied, we can use a backtrace to guess the proper
// foreign key name by using the name of the relationship function, which
// when combined with an "_id" should conventionally match the columns.
if
(
is_null
(
$foreignKey
))
{
if
(
is_null
(
$foreignKey
))
{
$foreignKey
=
Str
::
snake
(
$relation
)
.
'_id'
;
}
...
...
@@ -183,8 +176,7 @@ trait HybridRelations {
// If no name is provided, we will use the backtrace to get the function name
// since that is most likely the name of the polymorphic interface. We can
// use that to get both the class and foreign key that will be utilized.
if
(
is_null
(
$name
))
{
if
(
is_null
(
$name
))
{
list
(
$current
,
$caller
)
=
debug_backtrace
(
DEBUG_BACKTRACE_IGNORE_ARGS
,
2
);
$name
=
Str
::
snake
(
$caller
[
'function'
]);
...
...
@@ -195,8 +187,7 @@ trait HybridRelations {
// If the type value is null it is probably safe to assume we're eager loading
// the relationship. When that is the case we will pass in a dummy query as
// there are multiple types in the morph and we can't use single queries.
if
(
is_null
(
$class
=
$this
->
$type
))
{
if
(
is_null
(
$class
=
$this
->
$type
))
{
return
new
MorphTo
(
$this
->
newQuery
(),
$this
,
$id
,
null
,
$type
,
$name
);
...
...
@@ -205,8 +196,7 @@ trait HybridRelations {
// If we are not eager loading the relationship we will essentially treat this
// as a belongs-to style relationship since morph-to extends that class and
// we will pass in the appropriate values so that it behaves as expected.
else
{
else
{
$class
=
$this
->
getActualClassNameForMorph
(
$class
);
$instance
=
new
$class
;
...
...
@@ -232,14 +222,12 @@ trait HybridRelations {
// If no relationship name was passed, we will pull backtraces to get the
// name of the calling function. We will use that function name as the
// title of this relation since that is a great convention to apply.
if
(
is_null
(
$relation
))
{
if
(
is_null
(
$relation
))
{
$relation
=
$this
->
getBelongsToManyCaller
();
}
// Check if it is a relation with an original model.
if
(
!
is_subclass_of
(
$related
,
'Jenssegers\Mongodb\Model'
))
{
if
(
!
is_subclass_of
(
$related
,
'Jenssegers\Mongodb\Model'
))
{
return
parent
::
belongsToMany
(
$related
,
$collection
,
$foreignKey
,
$otherKey
,
$relation
);
}
...
...
@@ -255,8 +243,7 @@ trait HybridRelations {
// If no table name was provided, we can guess it by concatenating the two
// models using underscores in alphabetical order. The two model names
// are transformed to snake case from their default CamelCase also.
if
(
is_null
(
$collection
))
{
if
(
is_null
(
$collection
))
{
$collection
=
$instance
->
getTable
();
}
...
...
@@ -267,5 +254,4 @@ trait HybridRelations {
return
new
BelongsToMany
(
$query
,
$this
,
$collection
,
$foreignKey
,
$otherKey
,
$relation
);
}
}
src/Jenssegers/Mongodb/Eloquent/SoftDeletes.php
View file @
c16f41cd
<?php
namespace
Jenssegers\Mongodb\Eloquent
;
trait
SoftDeletes
{
trait
SoftDeletes
{
use
\Illuminate\Database\Eloquent\SoftDeletes
;
...
...
@@ -13,5 +14,4 @@ trait SoftDeletes {
{
return
$this
->
getDeletedAtColumn
();
}
}
src/Jenssegers/Mongodb/Model.php
View file @
c16f41cd
This diff is collapsed.
Click to expand it.
src/Jenssegers/Mongodb/MongodbServiceProvider.php
View file @
c16f41cd
...
...
@@ -2,8 +2,8 @@
use
Illuminate\Support\ServiceProvider
;
class
MongodbServiceProvider
extends
ServiceProvider
{
class
MongodbServiceProvider
extends
ServiceProvider
{
/**
* Bootstrap the application events.
*/
...
...
@@ -19,13 +19,10 @@ class MongodbServiceProvider extends ServiceProvider {
*/
public
function
register
()
{
$this
->
app
->
resolving
(
'db'
,
function
(
$db
)
{
$db
->
extend
(
'mongodb'
,
function
(
$config
)
{
$this
->
app
->
resolving
(
'db'
,
function
(
$db
)
{
$db
->
extend
(
'mongodb'
,
function
(
$config
)
{
return
new
Connection
(
$config
);
});
});
}
}
src/Jenssegers/Mongodb/Query/Builder.php
View file @
c16f41cd
This diff is collapsed.
Click to expand it.
src/Jenssegers/Mongodb/Query/Grammar.php
View file @
c16f41cd
...
...
@@ -4,5 +4,4 @@ use Illuminate\Database\Query\Grammars\Grammar as BaseGrammar;
class
Grammar
extends
BaseGrammar
{
}
src/Jenssegers/Mongodb/Query/Processor.php
View file @
c16f41cd
...
...
@@ -2,6 +2,6 @@
use
Illuminate\Database\Query\Processors\Processor
as
BaseProcessor
;
class
Processor
extends
BaseProcessor
{
class
Processor
extends
BaseProcessor
{
}
src/Jenssegers/Mongodb/Relations/BelongsTo.php
View file @
c16f41cd
<?php
namespace
Jenssegers\Mongodb\Relations
;
class
BelongsTo
extends
\Illuminate\Database\Eloquent\Relations\BelongsTo
{
class
BelongsTo
extends
\Illuminate\Database\Eloquent\Relations\BelongsTo
{
/**
* Set the base constraints on the relation query.
*/
public
function
addConstraints
()
{
if
(
static
::
$constraints
)
{
if
(
static
::
$constraints
)
{
// For belongs to relationships, which are essentially the inverse of has one
// or has many relationships, we need to actually query on the primary key
// of the related models matching on the foreign key that's on a parent.
...
...
@@ -30,5 +29,4 @@ class BelongsTo extends \Illuminate\Database\Eloquent\Relations\BelongsTo {
$this
->
query
->
whereIn
(
$key
,
$this
->
getEagerModelKeys
(
$models
));
}
}
src/Jenssegers/Mongodb/Relations/BelongsToMany.php
View file @
c16f41cd
...
...
@@ -4,8 +4,8 @@ use Illuminate\Database\Eloquent\Collection;
use
Illuminate\Database\Eloquent\Model
;
use
Illuminate\Database\Eloquent\Relations\BelongsToMany
as
EloquentBelongsToMany
;
class
BelongsToMany
extends
EloquentBelongsToMany
{
class
BelongsToMany
extends
EloquentBelongsToMany
{
/**
* Hydrate the pivot table relationship on the models.
*
...
...
@@ -32,7 +32,9 @@ class BelongsToMany extends EloquentBelongsToMany {
*/
public
function
addConstraints
()
{
if
(
static
::
$constraints
)
$this
->
setWhere
();
if
(
static
::
$constraints
)
{
$this
->
setWhere
();
}
}
/**
...
...
@@ -101,7 +103,9 @@ class BelongsToMany extends EloquentBelongsToMany {
'attached'
=>
[],
'detached'
=>
[],
'updated'
=>
[],
];
if
(
$ids
instanceof
Collection
)
$ids
=
$ids
->
modelKeys
();
if
(
$ids
instanceof
Collection
)
{
$ids
=
$ids
->
modelKeys
();
}
// First we need to attach any of the associated models that are not currently
// in this joining table. We'll spin through the given IDs, checking to see
...
...
@@ -109,7 +113,9 @@ class BelongsToMany extends EloquentBelongsToMany {
$current
=
$this
->
parent
->
{
$this
->
otherKey
}
?:
[];
// See issue #256.
if
(
$current
instanceof
Collection
)
$current
=
$ids
->
modelKeys
();
if
(
$current
instanceof
Collection
)
{
$current
=
$ids
->
modelKeys
();
}
$records
=
$this
->
formatSyncList
(
$ids
);
...
...
@@ -122,11 +128,10 @@ class BelongsToMany extends EloquentBelongsToMany {
// Next, we will take the differences of the currents and given IDs and detach
// all of the entities that exist in the "current" array but are not in the
// the array of the IDs given to the method which will complete the sync.
if
(
$detaching
and
count
(
$detach
)
>
0
)
{
if
(
$detaching
and
count
(
$detach
)
>
0
)
{
$this
->
detach
(
$detach
);
$changes
[
'detached'
]
=
(
array
)
array_map
(
function
(
$v
)
{
$changes
[
'detached'
]
=
(
array
)
array_map
(
function
(
$v
)
{
return
is_numeric
(
$v
)
?
(
int
)
$v
:
(
string
)
$v
;
},
$detach
);
}
...
...
@@ -138,8 +143,7 @@ class BelongsToMany extends EloquentBelongsToMany {
$changes
,
$this
->
attachNew
(
$records
,
$current
,
false
)
);
if
(
count
(
$changes
[
'attached'
])
||
count
(
$changes
[
'updated'
]))
{
if
(
count
(
$changes
[
'attached'
])
||
count
(
$changes
[
'updated'
]))
{
$this
->
touchIfTouching
();
}
...
...
@@ -167,17 +171,14 @@ class BelongsToMany extends EloquentBelongsToMany {
*/
public
function
attach
(
$id
,
array
$attributes
=
[],
$touch
=
true
)
{
if
(
$id
instanceof
Model
)
{
if
(
$id
instanceof
Model
)
{
$model
=
$id
;
$id
=
$model
->
getKey
();
// Attach the new parent id to the related model.
$model
->
push
(
$this
->
foreignKey
,
$this
->
parent
->
getKey
(),
true
);
}
else
{
}
else
{
$query
=
$this
->
newRelatedQuery
();
$query
->
whereIn
(
$this
->
related
->
getKeyName
(),
(
array
)
$id
);
...
...
@@ -189,7 +190,9 @@ class BelongsToMany extends EloquentBelongsToMany {
// Attach the new ids to the parent model.
$this
->
parent
->
push
(
$this
->
otherKey
,
(
array
)
$id
,
true
);
if
(
$touch
)
$this
->
touchIfTouching
();
if
(
$touch
)
{
$this
->
touchIfTouching
();
}
}
/**
...
...
@@ -201,7 +204,9 @@ class BelongsToMany extends EloquentBelongsToMany {
*/
public
function
detach
(
$ids
=
[],
$touch
=
true
)
{
if
(
$ids
instanceof
Model
)
$ids
=
(
array
)
$ids
->
getKey
();
if
(
$ids
instanceof
Model
)
{
$ids
=
(
array
)
$ids
->
getKey
();
}
$query
=
$this
->
newRelatedQuery
();
...
...
@@ -214,15 +219,16 @@ class BelongsToMany extends EloquentBelongsToMany {
$this
->
parent
->
pull
(
$this
->
otherKey
,
$ids
);
// Prepare the query to select all related objects.
if
(
count
(
$ids
)
>
0
)
{
if
(
count
(
$ids
)
>
0
)
{
$query
->
whereIn
(
$this
->
related
->
getKeyName
(),
$ids
);
}
// Remove the relation to the parent.
$query
->
pull
(
$this
->
foreignKey
,
$this
->
parent
->
getKey
());
if
(
$touch
)
$this
->
touchIfTouching
();
if
(
$touch
)
{
$this
->
touchIfTouching
();
}
return
count
(
$ids
);
}
...
...
@@ -242,10 +248,8 @@ class BelongsToMany extends EloquentBelongsToMany {
// parents without having a possibly slow inner loops for every models.
$dictionary
=
[];
foreach
(
$results
as
$result
)
{
foreach
(
$result
->
$foreign
as
$item
)
{
foreach
(
$results
as
$result
)
{
foreach
(
$result
->
$foreign
as
$item
)
{
$dictionary
[
$item
][]
=
$result
;
}
}
...
...
src/Jenssegers/Mongodb/Relations/EmbedsMany.php
View file @
c16f41cd
...
...
@@ -5,8 +5,8 @@ use Illuminate\Pagination\LengthAwarePaginator;
use
Illuminate\Pagination\Paginator
;
use
MongoId
;
class
EmbedsMany
extends
EmbedsOneOrMany
{
class
EmbedsMany
extends
EmbedsOneOrMany
{
/**
* Get the results of the relationship.
*
...
...
@@ -26,14 +26,12 @@ class EmbedsMany extends EmbedsOneOrMany {
public
function
performInsert
(
Model
$model
)
{
// Generate a new key if needed.
if
(
$model
->
getKeyName
()
==
'_id'
and
!
$model
->
getKey
())
{
if
(
$model
->
getKeyName
()
==
'_id'
and
!
$model
->
getKey
())
{
$model
->
setAttribute
(
'_id'
,
new
MongoId
);
}
// For deeply nested documents, let the parent handle the changes.
if
(
$this
->
isNested
())
{
if
(
$this
->
isNested
())
{
$this
->
associate
(
$model
);
return
$this
->
parent
->
save
();
...
...
@@ -43,7 +41,9 @@ class EmbedsMany extends EmbedsOneOrMany {
$result
=
$this
->
getBaseQuery
()
->
push
(
$this
->
localKey
,
$model
->
getAttributes
(),
true
);
// Attach the model to its parent.
if
(
$result
)
$this
->
associate
(
$model
);
if
(
$result
)
{
$this
->
associate
(
$model
);
}
return
$result
?
$model
:
false
;
}
...
...
@@ -57,8 +57,7 @@ class EmbedsMany extends EmbedsOneOrMany {
public
function
performUpdate
(
Model
$model
)
{
// For deeply nested documents, let the parent handle the changes.
if
(
$this
->
isNested
())
{
if
(
$this
->
isNested
())
{
$this
->
associate
(
$model
);
return
$this
->
parent
->
save
();
...
...
@@ -75,7 +74,9 @@ class EmbedsMany extends EmbedsOneOrMany {
->
update
(
$values
);
// Attach the model to its parent.
if
(
$result
)
$this
->
associate
(
$model
);
if
(
$result
)
{
$this
->
associate
(
$model
);
}
return
$result
?
$model
:
false
;
}
...
...
@@ -89,8 +90,7 @@ class EmbedsMany extends EmbedsOneOrMany {
public
function
performDelete
(
Model
$model
)
{
// For deeply nested documents, let the parent handle the changes.
if
(
$this
->
isNested
())
{
if
(
$this
->
isNested
())
{
$this
->
dissociate
(
$model
);
return
$this
->
parent
->
save
();
...
...
@@ -101,7 +101,9 @@ class EmbedsMany extends EmbedsOneOrMany {
$result
=
$this
->
getBaseQuery
()
->
pull
(
$this
->
localKey
,
[
$model
->
getKeyName
()
=>
$foreignKey
]);
if
(
$result
)
$this
->
dissociate
(
$model
);
if
(
$result
)
{
$this
->
dissociate
(
$model
);
}
return
$result
;
}
...
...
@@ -114,12 +116,9 @@ class EmbedsMany extends EmbedsOneOrMany {
*/
public
function
associate
(
Model
$model
)
{
if
(
!
$this
->
contains
(
$model
))
{
if
(
!
$this
->
contains
(
$model
))
{
return
$this
->
associateNew
(
$model
);
}
else
{
}
else
{
return
$this
->
associateExisting
(
$model
);
}
}
...
...
@@ -139,10 +138,8 @@ class EmbedsMany extends EmbedsOneOrMany {
$primaryKey
=
$this
->
related
->
getKeyName
();
// Remove the document from the parent model.
foreach
(
$records
as
$i
=>
$record
)
{
if
(
in_array
(
$record
[
$primaryKey
],
$ids
))
{
foreach
(
$records
as
$i
=>
$record
)
{
if
(
in_array
(
$record
[
$primaryKey
],
$ids
))
{
unset
(
$records
[
$i
]);
}
}
...
...
@@ -171,9 +168,10 @@ class EmbedsMany extends EmbedsOneOrMany {
$models
=
$this
->
getResults
()
->
only
(
$ids
);
// Pull the documents from the database.
foreach
(
$models
as
$model
)
{
if
(
$model
->
delete
())
$count
++
;
foreach
(
$models
as
$model
)
{
if
(
$model
->
delete
())
{
$count
++
;
}
}
return
$count
;
...
...
@@ -189,7 +187,9 @@ class EmbedsMany extends EmbedsOneOrMany {
// Overwrite the local key with an empty array.
$result
=
$this
->
query
->
update
([
$this
->
localKey
=>
[]]);
if
(
$result
)
$this
->
setEmbedded
([]);
if
(
$result
)
{
$this
->
setEmbedded
([]);
}
return
$result
;
}
...
...
@@ -225,8 +225,7 @@ class EmbedsMany extends EmbedsOneOrMany {
protected
function
associateNew
(
$model
)
{
// Create a new key if needed.
if
(
!
$model
->
getAttribute
(
'_id'
))
{
if
(
!
$model
->
getAttribute
(
'_id'
))
{
$model
->
setAttribute
(
'_id'
,
new
MongoId
);
}
...
...
@@ -254,10 +253,8 @@ class EmbedsMany extends EmbedsOneOrMany {
$key
=
$model
->
getKey
();
// Replace the document in the parent model.
foreach
(
$records
as
&
$record
)
{
if
(
$record
[
$primaryKey
]
==
$key
)
{
foreach
(
$records
as
&
$record
)
{
if
(
$record
[
$primaryKey
]
==
$key
)
{
$record
=
$model
->
getAttributes
();
break
;
}
...
...
@@ -306,7 +303,9 @@ class EmbedsMany extends EmbedsOneOrMany {
*/
protected
function
setEmbedded
(
$models
)
{
if
(
!
is_array
(
$models
))
$models
=
[
$models
];
if
(
!
is_array
(
$models
))
{
$models
=
[
$models
];
}
return
parent
::
setEmbedded
(
array_values
(
$models
));
}
...
...
@@ -321,12 +320,10 @@ class EmbedsMany extends EmbedsOneOrMany {
public
function
__call
(
$method
,
$parameters
)
{
// Collection methods
if
(
method_exists
(
'Illuminate\Database\Eloquent\Collection'
,
$method
))
{
if
(
method_exists
(
'Illuminate\Database\Eloquent\Collection'
,
$method
))
{
return
call_user_func_array
([
$this
->
getResults
(),
$method
],
$parameters
);
}
return
parent
::
__call
(
$method
,
$parameters
);
}
}
src/Jenssegers/Mongodb/Relations/EmbedsOne.php
View file @
c16f41cd
...
...
@@ -3,8 +3,8 @@
use
Illuminate\Database\Eloquent\Model
;
use
MongoId
;
class
EmbedsOne
extends
EmbedsOneOrMany
{
class
EmbedsOne
extends
EmbedsOneOrMany
{
/**
* Get the results of the relationship.
*
...
...
@@ -24,14 +24,12 @@ class EmbedsOne extends EmbedsOneOrMany {
public
function
performInsert
(
Model
$model
)
{
// Generate a new key if needed.
if
(
$model
->
getKeyName
()
==
'_id'
and
!
$model
->
getKey
())
{
if
(
$model
->
getKeyName
()
==
'_id'
and
!
$model
->
getKey
())
{
$model
->
setAttribute
(
'_id'
,
new
MongoId
);
}
// For deeply nested documents, let the parent handle the changes.
if
(
$this
->
isNested
())
{
if
(
$this
->
isNested
())
{
$this
->
associate
(
$model
);
return
$this
->
parent
->
save
();
...
...
@@ -40,7 +38,9 @@ class EmbedsOne extends EmbedsOneOrMany {
$result
=
$this
->
getBaseQuery
()
->
update
([
$this
->
localKey
=>
$model
->
getAttributes
()]);
// Attach the model to its parent.
if
(
$result
)
$this
->
associate
(
$model
);
if
(
$result
)
{
$this
->
associate
(
$model
);
}
return
$result
?
$model
:
false
;
}
...
...
@@ -53,8 +53,7 @@ class EmbedsOne extends EmbedsOneOrMany {
*/
public
function
performUpdate
(
Model
$model
)
{
if
(
$this
->
isNested
())
{
if
(
$this
->
isNested
())
{
$this
->
associate
(
$model
);
return
$this
->
parent
->
save
();
...
...
@@ -66,7 +65,9 @@ class EmbedsOne extends EmbedsOneOrMany {
$result
=
$this
->
getBaseQuery
()
->
update
(
$values
);
// Attach the model to its parent.
if
(
$result
)
$this
->
associate
(
$model
);
if
(
$result
)
{
$this
->
associate
(
$model
);
}
return
$result
?
$model
:
false
;
}
...
...
@@ -80,8 +81,7 @@ class EmbedsOne extends EmbedsOneOrMany {
public
function
performDelete
(
Model
$model
)
{
// For deeply nested documents, let the parent handle the changes.
if
(
$this
->
isNested
())
{
if
(
$this
->
isNested
())
{
$this
->
dissociate
(
$model
);
return
$this
->
parent
->
save
();
...
...
@@ -91,7 +91,9 @@ class EmbedsOne extends EmbedsOneOrMany {
$result
=
$this
->
getBaseQuery
()
->
update
([
$this
->
localKey
=>
null
]);
// Detach the model from its parent.
if
(
$result
)
$this
->
dissociate
();
if
(
$result
)
{
$this
->
dissociate
();
}
return
$result
;
}
...
...
@@ -128,5 +130,4 @@ class EmbedsOne extends EmbedsOneOrMany {
return
$this
->
performDelete
(
$model
);
}
}
src/Jenssegers/Mongodb/Relations/EmbedsOneOrMany.php
View file @
c16f41cd
...
...
@@ -5,8 +5,8 @@ use Illuminate\Database\Eloquent\Collection;
use
Illuminate\Database\Eloquent\Model
;
use
Illuminate\Database\Eloquent\Relations\Relation
;
abstract
class
EmbedsOneOrMany
extends
Relation
{
abstract
class
EmbedsOneOrMany
extends
Relation
{
/**
* The local key of the parent model.
*
...
...
@@ -48,8 +48,7 @@ abstract class EmbedsOneOrMany extends Relation {
$this
->
relation
=
$relation
;
// If this is a nested relation, we need to get the parent query instead.
if
(
$parentRelation
=
$this
->
getParentRelation
())
{
if
(
$parentRelation
=
$this
->
getParentRelation
())
{
$this
->
query
=
$parentRelation
->
getQuery
();
}
...
...
@@ -61,8 +60,7 @@ abstract class EmbedsOneOrMany extends Relation {
*/
public
function
addConstraints
()
{
if
(
static
::
$constraints
)
{
if
(
static
::
$constraints
)
{
$this
->
query
->
where
(
$this
->
getQualifiedParentKeyName
(),
'='
,
$this
->
getParentKey
());
}
}
...
...
@@ -85,8 +83,7 @@ abstract class EmbedsOneOrMany extends Relation {
*/
public
function
initRelation
(
array
$models
,
$relation
)
{
foreach
(
$models
as
$model
)
{
foreach
(
$models
as
$model
)
{
$model
->
setParentRelation
(
$this
);
$model
->
setRelation
(
$relation
,
$this
->
related
->
newCollection
());
...
...
@@ -105,8 +102,7 @@ abstract class EmbedsOneOrMany extends Relation {
*/
public
function
match
(
array
$models
,
Collection
$results
,
$relation
)
{
foreach
(
$models
as
$model
)
{
foreach
(
$models
as
$model
)
{
$results
=
$model
->
$relation
()
->
getResults
();
$model
->
setParentRelation
(
$this
);
...
...
@@ -195,8 +191,7 @@ abstract class EmbedsOneOrMany extends Relation {
{
$instances
=
[];
foreach
(
$records
as
$record
)
{
foreach
(
$records
as
$record
)
{
$instances
[]
=
$this
->
create
(
$record
);
}
...
...
@@ -211,16 +206,18 @@ abstract class EmbedsOneOrMany extends Relation {
*/
protected
function
getIdsArrayFrom
(
$ids
)
{
if
(
$ids
instanceof
\Illuminate\Support\Collection
)
{
if
(
$ids
instanceof
\Illuminate\Support\Collection
)
{
$ids
=
$ids
->
all
();
}
if
(
!
is_array
(
$ids
))
$ids
=
[
$ids
];
if
(
!
is_array
(
$ids
))
{
$ids
=
[
$ids
];
}
foreach
(
$ids
as
&
$id
)
{
if
(
$id
instanceof
Model
)
$id
=
$id
->
getKey
();
foreach
(
$ids
as
&
$id
)
{
if
(
$id
instanceof
Model
)
{
$id
=
$id
->
getKey
();
}
}
return
$ids
;
...
...
@@ -269,8 +266,7 @@ abstract class EmbedsOneOrMany extends Relation {
*/
protected
function
getForeignKeyValue
(
$id
)
{
if
(
$id
instanceof
Model
)
{
if
(
$id
instanceof
Model
)
{
$id
=
$id
->
getKey
();
}
...
...
@@ -288,13 +284,11 @@ abstract class EmbedsOneOrMany extends Relation {
{
$models
=
[];
foreach
(
$records
as
$attributes
)
{
foreach
(
$records
as
$attributes
)
{
$models
[]
=
$this
->
toModel
(
$attributes
);
}
if
(
count
(
$models
)
>
0
)
{
if
(
count
(
$models
)
>
0
)
{
$models
=
$this
->
eagerLoadRelations
(
$models
);
}
...
...
@@ -309,7 +303,9 @@ abstract class EmbedsOneOrMany extends Relation {
*/
protected
function
toModel
(
$attributes
=
[])
{
if
(
is_null
(
$attributes
))
return
;
if
(
is_null
(
$attributes
))
{
return
;
}
$model
=
$this
->
related
->
newFromBuilder
((
array
)
$attributes
);
...
...
@@ -375,8 +371,7 @@ abstract class EmbedsOneOrMany extends Relation {
*/
protected
function
getPathHierarchy
(
$glue
=
'.'
)
{
if
(
$parentRelation
=
$this
->
getParentRelation
())
{
if
(
$parentRelation
=
$this
->
getParentRelation
())
{
return
$parentRelation
->
getPathHierarchy
(
$glue
)
.
$glue
.
$this
->
localKey
;
}
...
...
@@ -390,8 +385,7 @@ abstract class EmbedsOneOrMany extends Relation {
*/
public
function
getQualifiedParentKeyName
()
{
if
(
$parentRelation
=
$this
->
getParentRelation
())
{
if
(
$parentRelation
=
$this
->
getParentRelation
())
{
return
$parentRelation
->
getPathHierarchy
()
.
'.'
.
$this
->
parent
->
getKeyName
();
}
...
...
@@ -407,5 +401,4 @@ abstract class EmbedsOneOrMany extends Relation {
{
return
$this
->
parent
->
getKey
();
}
}
src/Jenssegers/Mongodb/Relations/HasMany.php
View file @
c16f41cd
...
...
@@ -3,8 +3,8 @@
use
Illuminate\Database\Eloquent\Builder
;
use
Illuminate\Database\Eloquent\Relations\HasMany
as
EloquentHasMany
;
class
HasMany
extends
EloquentHasMany
{
class
HasMany
extends
EloquentHasMany
{
/**
* Add the constraints for a relationship query.
*
...
...
@@ -45,5 +45,4 @@ class HasMany extends EloquentHasMany {
{
return
$this
->
getForeignKey
();
}
}
src/Jenssegers/Mongodb/Relations/HasOne.php
View file @
c16f41cd
...
...
@@ -3,8 +3,8 @@
use
Illuminate\Database\Eloquent\Builder
;
use
Illuminate\Database\Eloquent\Relations\HasOne
as
EloquentHasOne
;
class
HasOne
extends
EloquentHasOne
{
class
HasOne
extends
EloquentHasOne
{
/**
* Add the constraints for a relationship query.
*
...
...
@@ -45,5 +45,4 @@ class HasOne extends EloquentHasOne {
{
return
$this
->
getForeignKey
();
}
}
src/Jenssegers/Mongodb/Relations/MorphTo.php
View file @
c16f41cd
...
...
@@ -2,15 +2,14 @@
use
Illuminate\Database\Eloquent\Relations\MorphTo
as
EloquentMorphTo
;
class
MorphTo
extends
EloquentMorphTo
{
class
MorphTo
extends
EloquentMorphTo
{
/**
* Set the base constraints on the relation query.
*/
public
function
addConstraints
()
{
if
(
static
::
$constraints
)
{
if
(
static
::
$constraints
)
{
// For belongs to relationships, which are essentially the inverse of has one
// or has many relationships, we need to actually query on the primary key
// of the related models matching on the foreign key that's on a parent.
...
...
@@ -36,5 +35,4 @@ class MorphTo extends EloquentMorphTo {
return
$query
->
whereIn
(
$key
,
$this
->
gatherKeysByType
(
$type
)
->
all
())
->
get
();
}
}
src/Jenssegers/Mongodb/Schema/Blueprint.php
View file @
c16f41cd
...
...
@@ -3,8 +3,8 @@
use
Closure
;
use
Illuminate\Database\Connection
;
class
Blueprint
extends
\Illuminate\Database\Schema\Blueprint
{
class
Blueprint
extends
\Illuminate\Database\Schema\Blueprint
{
/**
* The MongoConnection object for this blueprint.
*
...
...
@@ -51,13 +51,11 @@ class Blueprint extends \Illuminate\Database\Schema\Blueprint {
$columns
=
$this
->
fluent
(
$columns
);
// Columns are passed as a default array.
if
(
is_array
(
$columns
)
&&
is_int
(
key
(
$columns
)))
{
if
(
is_array
(
$columns
)
&&
is_int
(
key
(
$columns
)))
{
// Transform the columns to the required array format.
$transform
=
[];
foreach
(
$columns
as
$column
)
{
foreach
(
$columns
as
$column
)
{
$transform
[
$column
]
=
1
;
}
...
...
@@ -92,13 +90,11 @@ class Blueprint extends \Illuminate\Database\Schema\Blueprint {
$columns
=
$this
->
fluent
(
$columns
);
// Columns are passed as a default array.
if
(
is_array
(
$columns
)
&&
is_int
(
key
(
$columns
)))
{
if
(
is_array
(
$columns
)
&&
is_int
(
key
(
$columns
)))
{
// Transform the columns to the required array format.
$transform
=
[];
foreach
(
$columns
as
$column
)
{
foreach
(
$columns
as
$column
)
{
$transform
[
$column
]
=
1
;
}
...
...
@@ -226,16 +222,11 @@ class Blueprint extends \Illuminate\Database\Schema\Blueprint {
*/
protected
function
fluent
(
$columns
=
null
)
{
if
(
is_null
(
$columns
))
{
if
(
is_null
(
$columns
))
{
return
$this
->
columns
;
}
elseif
(
is_string
(
$columns
))
{
}
elseif
(
is_string
(
$columns
))
{
return
$this
->
columns
=
[
$columns
];
}
else
{
}
else
{
return
$this
->
columns
=
$columns
;
}
}
...
...
@@ -250,5 +241,4 @@ class Blueprint extends \Illuminate\Database\Schema\Blueprint {
// Dummy.
return
$this
;
}
}
src/Jenssegers/Mongodb/Schema/Builder.php
View file @
c16f41cd
...
...
@@ -3,8 +3,8 @@
use
Closure
;
use
Jenssegers\Mongodb\Connection
;
class
Builder
extends
\Illuminate\Database\Schema\Builder
{
class
Builder
extends
\Illuminate\Database\Schema\Builder
{
/**
* Create a new database Schema manager.
*
...
...
@@ -73,8 +73,7 @@ class Builder extends \Illuminate\Database\Schema\Builder {
{
$blueprint
=
$this
->
createBlueprint
(
$collection
);
if
(
$callback
)
{
if
(
$callback
)
{
$callback
(
$blueprint
);
}
}
...
...
@@ -104,8 +103,7 @@ class Builder extends \Illuminate\Database\Schema\Builder {
$blueprint
->
create
();
if
(
$callback
)
{
if
(
$callback
)
{
$callback
(
$blueprint
);
}
}
...
...
@@ -133,5 +131,4 @@ class Builder extends \Illuminate\Database\Schema\Builder {
{
return
new
Blueprint
(
$this
->
connection
,
$collection
);
}
}
tests/AuthTest.php
View file @
c16f41cd
...
...
@@ -3,7 +3,8 @@
use
Illuminate\Auth\Passwords\PasswordBroker
;
use
Illuminate\Foundation\Application
;
class
AuthTest
extends
TestCase
{
class
AuthTest
extends
TestCase
{
public
function
tearDown
()
{
...
...
@@ -25,8 +26,7 @@ class AuthTest extends TestCase {
public
function
testRemind
()
{
if
(
Application
::
VERSION
>=
'5.2'
)
{
if
(
Application
::
VERSION
>=
'5.2'
)
{
return
;
}
...
...
@@ -58,8 +58,7 @@ class AuthTest extends TestCase {
'token'
=>
$reminder
[
'token'
],
];
$response
=
$broker
->
reset
(
$credentials
,
function
(
$user
,
$password
)
{
$response
=
$broker
->
reset
(
$credentials
,
function
(
$user
,
$password
)
{
$user
->
password
=
bcrypt
(
$password
);
$user
->
save
();
});
...
...
@@ -67,5 +66,4 @@ class AuthTest extends TestCase {
$this
->
assertEquals
(
'passwords.reset'
,
$response
);
$this
->
assertEquals
(
0
,
DB
::
collection
(
'password_resets'
)
->
count
());
}
}
tests/ConnectionTest.php
View file @
c16f41cd
<?php
class
ConnectionTest
extends
TestCase
{
class
ConnectionTest
extends
TestCase
{
public
function
testConnection
()
{
...
...
@@ -129,5 +130,4 @@ class ConnectionTest extends TestCase {
$this
->
setExpectedException
(
'MongoConnectionException'
,
"Failed to connect to: "
.
$hosts
[
0
]
.
": Connection refused; Failed to connect to: "
.
$hosts
[
1
]
.
": Connection refused"
);
$connection
=
DB
::
connection
(
'mongodb'
);
}
}
tests/EmbeddedRelationsTest.php
View file @
c16f41cd
<?php
class
EmbeddedRelationsTest
extends
TestCase
{
class
EmbeddedRelationsTest
extends
TestCase
{
public
function
tearDown
()
{
...
...
@@ -696,5 +697,4 @@ class EmbeddedRelationsTest extends TestCase {
$this
->
assertEquals
(
2
,
$results
->
count
());
$this
->
assertEquals
(
3
,
$results
->
total
());
}
}
tests/ModelTest.php
View file @
c16f41cd
<?php
class
ModelTest
extends
TestCase
{
class
ModelTest
extends
TestCase
{
public
function
tearDown
()
{
...
...
@@ -331,7 +332,8 @@ class ModelTest extends TestCase {
$item
=
Item
::
create
([
'name'
=>
'fork'
,
'type'
=>
'sharp'
]);
$array
=
$item
->
toArray
();
$keys
=
array_keys
(
$array
);
sort
(
$keys
);
$keys
=
array_keys
(
$array
);
sort
(
$keys
);
$this
->
assertEquals
([
'_id'
,
'created_at'
,
'name'
,
'type'
,
'updated_at'
],
$keys
);
$this
->
assertTrue
(
is_string
(
$array
[
'created_at'
]));
$this
->
assertTrue
(
is_string
(
$array
[
'updated_at'
]));
...
...
@@ -449,27 +451,23 @@ class ModelTest extends TestCase {
User
::
create
([
'name'
=>
'Jane Doe'
,
'age'
=>
35
]);
User
::
create
([
'name'
=>
'Harry Hoe'
,
'age'
=>
15
]);
$users
=
User
::
raw
(
function
(
$collection
)
{
$users
=
User
::
raw
(
function
(
$collection
)
{
return
$collection
->
find
([
'age'
=>
35
]);
});
$this
->
assertInstanceOf
(
'Illuminate\Database\Eloquent\Collection'
,
$users
);
$this
->
assertInstanceOf
(
'Jenssegers\Mongodb\Model'
,
$users
[
0
]);
$user
=
User
::
raw
(
function
(
$collection
)
{
$user
=
User
::
raw
(
function
(
$collection
)
{
return
$collection
->
findOne
([
'age'
=>
35
]);
});
$this
->
assertInstanceOf
(
'Jenssegers\Mongodb\Model'
,
$user
);
$count
=
User
::
raw
(
function
(
$collection
)
{
$count
=
User
::
raw
(
function
(
$collection
)
{
return
$collection
->
count
();
});
$this
->
assertEquals
(
3
,
$count
);
$result
=
User
::
raw
(
function
(
$collection
)
{
$result
=
User
::
raw
(
function
(
$collection
)
{
return
$collection
->
insert
([
'name'
=>
'Yvonne Yoe'
,
'age'
=>
35
]);
});
$this
->
assertTrue
(
is_array
(
$result
));
...
...
@@ -499,5 +497,4 @@ class ModelTest extends TestCase {
$user
->
birthday
=
new
DateTime
(
'19 august 1989'
);
$this
->
assertEmpty
(
$user
->
getDirty
());
}
}
tests/MysqlRelationsTest.php
View file @
c16f41cd
<?php
class
MysqlRelationsTest
extends
TestCase
{
class
MysqlRelationsTest
extends
TestCase
{
public
function
setUp
()
{
...
...
tests/QueryBuilderTest.php
View file @
c16f41cd
<?php
class
QueryBuilderTest
extends
TestCase
{
class
QueryBuilderTest
extends
TestCase
{
public
function
tearDown
()
{
...
...
@@ -179,8 +180,7 @@ class QueryBuilderTest extends TestCase {
[
'name'
=>
'John Doe'
,
'age'
=>
25
],
]);
$cursor
=
DB
::
collection
(
'users'
)
->
raw
(
function
(
$collection
)
{
$cursor
=
DB
::
collection
(
'users'
)
->
raw
(
function
(
$collection
)
{
return
$collection
->
find
([
'age'
=>
20
]);
});
...
...
@@ -286,11 +286,13 @@ class QueryBuilderTest extends TestCase {
[
'name'
=>
'spoon'
,
'type'
=>
'round'
],
]);
$items
=
DB
::
collection
(
'items'
)
->
distinct
(
'name'
)
->
get
();
sort
(
$items
);
$items
=
DB
::
collection
(
'items'
)
->
distinct
(
'name'
)
->
get
();
sort
(
$items
);
$this
->
assertEquals
(
3
,
count
(
$items
));
$this
->
assertEquals
([
'fork'
,
'knife'
,
'spoon'
],
$items
);
$types
=
DB
::
collection
(
'items'
)
->
distinct
(
'type'
)
->
get
();
sort
(
$types
);
$types
=
DB
::
collection
(
'items'
)
->
distinct
(
'type'
)
->
get
();
sort
(
$types
);
$this
->
assertEquals
(
2
,
count
(
$types
));
$this
->
assertEquals
([
'round'
,
'sharp'
],
$types
);
}
...
...
@@ -635,10 +637,8 @@ class QueryBuilderTest extends TestCase {
$results
=
DB
::
collection
(
'items'
)
->
project
([
'tags'
=>
[
'$slice'
=>
1
]])
->
get
();
foreach
(
$results
as
$result
)
{
foreach
(
$results
as
$result
)
{
$this
->
assertEquals
(
1
,
count
(
$result
[
'tags'
]));
}
}
}
tests/QueryTest.php
View file @
c16f41cd
<?php
class
QueryTest
extends
TestCase
{
class
QueryTest
extends
TestCase
{
protected
static
$started
=
false
;
...
...
@@ -214,8 +215,7 @@ class QueryTest extends TestCase {
public
function
testSubquery
()
{
$users
=
User
::
where
(
'title'
,
'admin'
)
->
orWhere
(
function
(
$query
)
{
$users
=
User
::
where
(
'title'
,
'admin'
)
->
orWhere
(
function
(
$query
)
{
$query
->
where
(
'name'
,
'Tommy Toe'
)
->
orWhere
(
'name'
,
'Error'
);
})
...
...
@@ -223,8 +223,7 @@ class QueryTest extends TestCase {
$this
->
assertEquals
(
5
,
count
(
$users
));
$users
=
User
::
where
(
'title'
,
'user'
)
->
where
(
function
(
$query
)
{
$users
=
User
::
where
(
'title'
,
'user'
)
->
where
(
function
(
$query
)
{
$query
->
where
(
'age'
,
35
)
->
orWhere
(
'name'
,
'like'
,
'%harry%'
);
})
...
...
@@ -232,8 +231,7 @@ class QueryTest extends TestCase {
$this
->
assertEquals
(
2
,
count
(
$users
));
$users
=
User
::
where
(
'age'
,
35
)
->
orWhere
(
function
(
$query
)
{
$users
=
User
::
where
(
'age'
,
35
)
->
orWhere
(
function
(
$query
)
{
$query
->
where
(
'title'
,
'admin'
)
->
orWhere
(
'name'
,
'Error'
);
})
...
...
@@ -243,8 +241,7 @@ class QueryTest extends TestCase {
$users
=
User
::
whereNull
(
'deleted_at'
)
->
where
(
'title'
,
'admin'
)
->
where
(
function
(
$query
)
{
->
where
(
function
(
$query
)
{
$query
->
where
(
'age'
,
'>'
,
15
)
->
orWhere
(
'name'
,
'Harry Hoe'
);
})
...
...
@@ -253,11 +250,9 @@ class QueryTest extends TestCase {
$this
->
assertEquals
(
3
,
$users
->
count
());
$users
=
User
::
whereNull
(
'deleted_at'
)
->
where
(
function
(
$query
)
{
->
where
(
function
(
$query
)
{
$query
->
where
(
'name'
,
'Harry Hoe'
)
->
orWhere
(
function
(
$query
)
{
->
orWhere
(
function
(
$query
)
{
$query
->
where
(
'age'
,
'>'
,
15
)
->
where
(
'title'
,
'<>'
,
'admin'
);
});
...
...
@@ -283,23 +278,19 @@ class QueryTest extends TestCase {
public
function
testMultipleOr
()
{
$users
=
User
::
where
(
function
(
$query
)
{
$users
=
User
::
where
(
function
(
$query
)
{
$query
->
where
(
'age'
,
35
)
->
orWhere
(
'age'
,
33
);
})
->
where
(
function
(
$query
)
{
->
where
(
function
(
$query
)
{
$query
->
where
(
'name'
,
'John Doe'
)
->
orWhere
(
'name'
,
'Jane Doe'
);
})
->
get
();
$this
->
assertEquals
(
2
,
count
(
$users
));
$users
=
User
::
where
(
function
(
$query
)
{
$users
=
User
::
where
(
function
(
$query
)
{
$query
->
orWhere
(
'age'
,
35
)
->
orWhere
(
'age'
,
33
);
})
->
where
(
function
(
$query
)
{
->
where
(
function
(
$query
)
{
$query
->
orWhere
(
'name'
,
'John Doe'
)
->
orWhere
(
'name'
,
'Jane Doe'
);
})
->
get
();
...
...
@@ -319,5 +310,4 @@ class QueryTest extends TestCase {
$this
->
assertEquals
(
9
,
$results
->
total
());
$this
->
assertEquals
(
1
,
$results
->
currentPage
());
}
}
tests/RelationsTest.php
View file @
c16f41cd
<?php
class
RelationsTest
extends
TestCase
{
class
RelationsTest
extends
TestCase
{
public
function
tearDown
()
{
...
...
@@ -410,15 +411,13 @@ class RelationsTest extends TestCase {
$authors
=
User
::
has
(
'books'
,
'!='
,
0
)
->
get
();
$this
->
assertCount
(
2
,
$authors
);
$authors
=
User
::
whereHas
(
'books'
,
function
(
$query
)
{
$authors
=
User
::
whereHas
(
'books'
,
function
(
$query
)
{
$query
->
where
(
'rating'
,
5
);
})
->
get
();
$this
->
assertCount
(
1
,
$authors
);
$authors
=
User
::
whereHas
(
'books'
,
function
(
$query
)
{
$authors
=
User
::
whereHas
(
'books'
,
function
(
$query
)
{
$query
->
where
(
'rating'
,
'<'
,
5
);
})
->
get
();
...
...
@@ -521,5 +520,4 @@ class RelationsTest extends TestCase {
$this
->
assertEquals
([
$user
->
_id
],
$client
->
user_ids
);
$this
->
assertEquals
([
$client
->
_id
],
$user
->
client_ids
);
}
}
tests/SchemaTest.php
View file @
c16f41cd
<?php
class
SchemaTest
extends
TestCase
{
class
SchemaTest
extends
TestCase
{
public
function
tearDown
()
{
...
...
@@ -18,8 +19,7 @@ class SchemaTest extends TestCase {
{
$instance
=
$this
;
Schema
::
create
(
'newcollection'
,
function
(
$collection
)
use
(
$instance
)
{
Schema
::
create
(
'newcollection'
,
function
(
$collection
)
use
(
$instance
)
{
$instance
->
assertInstanceOf
(
'Jenssegers\Mongodb\Schema\Blueprint'
,
$collection
);
});
...
...
@@ -37,37 +37,32 @@ class SchemaTest extends TestCase {
{
$instance
=
$this
;
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
use
(
$instance
)
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
use
(
$instance
)
{
$instance
->
assertInstanceOf
(
'Jenssegers\Mongodb\Schema\Blueprint'
,
$collection
);
});
Schema
::
table
(
'newcollection'
,
function
(
$collection
)
use
(
$instance
)
{
Schema
::
table
(
'newcollection'
,
function
(
$collection
)
use
(
$instance
)
{
$instance
->
assertInstanceOf
(
'Jenssegers\Mongodb\Schema\Blueprint'
,
$collection
);
});
}
public
function
testIndex
()
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
$collection
->
index
(
'mykey1'
);
});
$index
=
$this
->
getIndex
(
'newcollection'
,
'mykey1'
);
$this
->
assertEquals
(
1
,
$index
[
'key'
][
'mykey1'
]);
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
$collection
->
index
([
'mykey2'
]);
});
$index
=
$this
->
getIndex
(
'newcollection'
,
'mykey2'
);
$this
->
assertEquals
(
1
,
$index
[
'key'
][
'mykey2'
]);
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
$collection
->
string
(
'mykey3'
)
->
index
();
});
...
...
@@ -77,8 +72,7 @@ class SchemaTest extends TestCase {
public
function
testPrimary
()
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
$collection
->
string
(
'mykey'
,
100
)
->
primary
();
});
...
...
@@ -88,8 +82,7 @@ class SchemaTest extends TestCase {
public
function
testUnique
()
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
$collection
->
unique
(
'uniquekey'
);
});
...
...
@@ -99,8 +92,7 @@ class SchemaTest extends TestCase {
public
function
testDropIndex
()
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
$collection
->
unique
(
'uniquekey'
);
$collection
->
dropIndex
(
'uniquekey'
);
});
...
...
@@ -108,8 +100,7 @@ class SchemaTest extends TestCase {
$index
=
$this
->
getIndex
(
'newcollection'
,
'uniquekey'
);
$this
->
assertEquals
(
null
,
$index
);
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
$collection
->
unique
(
'uniquekey'
);
$collection
->
dropIndex
([
'uniquekey'
]);
});
...
...
@@ -120,8 +111,7 @@ class SchemaTest extends TestCase {
public
function
testBackground
()
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
$collection
->
background
(
'backgroundkey'
);
});
...
...
@@ -131,8 +121,7 @@ class SchemaTest extends TestCase {
public
function
testSparse
()
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
$collection
->
sparse
(
'sparsekey'
);
});
...
...
@@ -142,8 +131,7 @@ class SchemaTest extends TestCase {
public
function
testExpire
()
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
$collection
->
expire
(
'expirekey'
,
60
);
});
...
...
@@ -153,13 +141,11 @@ class SchemaTest extends TestCase {
public
function
testSoftDeletes
()
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
$collection
->
softDeletes
();
});
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
$collection
->
string
(
'email'
)
->
nullable
()
->
index
();
});
...
...
@@ -169,8 +155,7 @@ class SchemaTest extends TestCase {
public
function
testFluent
()
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
$collection
->
string
(
'email'
)
->
index
();
$collection
->
string
(
'token'
)
->
index
();
$collection
->
timestamp
(
'created_at'
);
...
...
@@ -185,8 +170,7 @@ class SchemaTest extends TestCase {
public
function
testDummies
()
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
Schema
::
collection
(
'newcollection'
,
function
(
$collection
)
{
$collection
->
boolean
(
'activated'
)
->
default
(
0
);
$collection
->
integer
(
'user_id'
)
->
unsigned
();
});
...
...
@@ -196,12 +180,12 @@ class SchemaTest extends TestCase {
{
$collection
=
DB
::
getCollection
(
$collection
);
foreach
(
$collection
->
getIndexInfo
()
as
$index
)
{
if
(
isset
(
$index
[
'key'
][
$name
]))
return
$index
;
foreach
(
$collection
->
getIndexInfo
()
as
$index
)
{
if
(
isset
(
$index
[
'key'
][
$name
]))
{
return
$index
;
}
}
return
false
;
}
}
tests/SeederTest.php
View file @
c16f41cd
<?php
class
SeederTest
extends
TestCase
{
class
SeederTest
extends
TestCase
{
public
function
tearDown
()
{
...
...
@@ -23,5 +24,4 @@ class SeederTest extends TestCase {
$user
=
User
::
where
(
'name'
,
'John Doe'
)
->
first
();
$this
->
assertTrue
(
$user
->
seed
);
}
}
tests/TestCase.php
View file @
c16f41cd
<?php
class
TestCase
extends
Orchestra\Testbench\TestCase
{
class
TestCase
extends
Orchestra\Testbench\TestCase
{
/**
* Get package providers.
*
...
...
@@ -37,5 +37,4 @@ class TestCase extends Orchestra\Testbench\TestCase {
$app
[
'config'
]
->
set
(
'auth.providers.users.model'
,
'User'
);
$app
[
'config'
]
->
set
(
'cache.driver'
,
'array'
);
}
}
tests/ValidationTest.php
View file @
c16f41cd
<?php
class
ValidationTest
extends
TestCase
{
class
ValidationTest
extends
TestCase
{
public
function
tearDown
()
{
...
...
@@ -23,5 +24,4 @@ class ValidationTest extends TestCase {
);
$this
->
assertTrue
(
$validator
->
fails
());
}
}
tests/models/Address.php
View file @
c16f41cd
...
...
@@ -2,7 +2,8 @@
use
Jenssegers\Mongodb\Model
as
Eloquent
;
class
Address
extends
Eloquent
{
class
Address
extends
Eloquent
{
protected
static
$unguarded
=
true
;
...
...
@@ -10,5 +11,4 @@ class Address extends Eloquent {
{
return
$this
->
embedsMany
(
'Address'
);
}
}
tests/models/Book.php
View file @
c16f41cd
...
...
@@ -2,7 +2,8 @@
use
Jenssegers\Mongodb\Model
as
Eloquent
;
class
Book
extends
Eloquent
{
class
Book
extends
Eloquent
{
protected
$collection
=
'books'
;
protected
static
$unguarded
=
true
;
...
...
tests/models/Client.php
View file @
c16f41cd
...
...
@@ -2,7 +2,8 @@
use
Jenssegers\Mongodb\Model
as
Eloquent
;
class
Client
extends
Eloquent
{
class
Client
extends
Eloquent
{
protected
$collection
=
'clients'
;
protected
static
$unguarded
=
true
;
...
...
tests/models/Group.php
View file @
c16f41cd
...
...
@@ -2,7 +2,8 @@
use
Jenssegers\Mongodb\Model
as
Eloquent
;
class
Group
extends
Eloquent
{
class
Group
extends
Eloquent
{
protected
$collection
=
'groups'
;
protected
static
$unguarded
=
true
;
...
...
tests/models/Item.php
View file @
c16f41cd
...
...
@@ -2,7 +2,8 @@
use
Jenssegers\Mongodb\Model
as
Eloquent
;
class
Item
extends
Eloquent
{
class
Item
extends
Eloquent
{
protected
$collection
=
'items'
;
protected
static
$unguarded
=
true
;
...
...
@@ -16,5 +17,4 @@ class Item extends Eloquent {
{
return
$query
->
where
(
'type'
,
'sharp'
);
}
}
tests/models/MysqlBook.php
View file @
c16f41cd
...
...
@@ -3,7 +3,8 @@
use
\Illuminate\Support\Facades\Schema
;
use
Jenssegers\Eloquent\Model
as
Eloquent
;
class
MysqlBook
extends
Eloquent
{
class
MysqlBook
extends
Eloquent
{
protected
$connection
=
'mysql'
;
protected
$table
=
'books'
;
...
...
@@ -23,15 +24,12 @@ class MysqlBook extends Eloquent {
{
$schema
=
Schema
::
connection
(
'mysql'
);
if
(
!
$schema
->
hasTable
(
'books'
))
{
Schema
::
connection
(
'mysql'
)
->
create
(
'books'
,
function
(
$table
)
{
if
(
!
$schema
->
hasTable
(
'books'
))
{
Schema
::
connection
(
'mysql'
)
->
create
(
'books'
,
function
(
$table
)
{
$table
->
string
(
'title'
);
$table
->
string
(
'author_id'
);
$table
->
timestamps
();
});
}
}
}
tests/models/MysqlRole.php
View file @
c16f41cd
...
...
@@ -3,7 +3,8 @@
use
\Illuminate\Support\Facades\Schema
;
use
Jenssegers\Eloquent\Model
as
Eloquent
;
class
MysqlRole
extends
Eloquent
{
class
MysqlRole
extends
Eloquent
{
protected
$connection
=
'mysql'
;
protected
$table
=
'roles'
;
...
...
@@ -27,15 +28,12 @@ class MysqlRole extends Eloquent {
{
$schema
=
Schema
::
connection
(
'mysql'
);
if
(
!
$schema
->
hasTable
(
'roles'
))
{
Schema
::
connection
(
'mysql'
)
->
create
(
'roles'
,
function
(
$table
)
{
if
(
!
$schema
->
hasTable
(
'roles'
))
{
Schema
::
connection
(
'mysql'
)
->
create
(
'roles'
,
function
(
$table
)
{
$table
->
string
(
'type'
);
$table
->
string
(
'user_id'
);
$table
->
timestamps
();
});
}
}
}
tests/models/MysqlUser.php
View file @
c16f41cd
...
...
@@ -3,7 +3,8 @@
use
\Illuminate\Support\Facades\Schema
;
use
Jenssegers\Eloquent\Model
as
Eloquent
;
class
MysqlUser
extends
Eloquent
{
class
MysqlUser
extends
Eloquent
{
protected
$connection
=
'mysql'
;
protected
$table
=
'users'
;
...
...
@@ -27,15 +28,12 @@ class MysqlUser extends Eloquent {
{
$schema
=
Schema
::
connection
(
'mysql'
);
if
(
!
$schema
->
hasTable
(
'users'
))
{
Schema
::
connection
(
'mysql'
)
->
create
(
'users'
,
function
(
$table
)
{
if
(
!
$schema
->
hasTable
(
'users'
))
{
Schema
::
connection
(
'mysql'
)
->
create
(
'users'
,
function
(
$table
)
{
$table
->
increments
(
'id'
);
$table
->
string
(
'name'
);
$table
->
timestamps
();
});
}
}
}
tests/models/Photo.php
View file @
c16f41cd
...
...
@@ -2,7 +2,8 @@
use
Jenssegers\Mongodb\Model
as
Eloquent
;
class
Photo
extends
Eloquent
{
class
Photo
extends
Eloquent
{
protected
$collection
=
'photos'
;
protected
static
$unguarded
=
true
;
...
...
@@ -11,5 +12,4 @@ class Photo extends Eloquent {
{
return
$this
->
morphTo
();
}
}
tests/models/Role.php
View file @
c16f41cd
...
...
@@ -2,7 +2,8 @@
use
Jenssegers\Mongodb\Model
as
Eloquent
;
class
Role
extends
Eloquent
{
class
Role
extends
Eloquent
{
protected
$collection
=
'roles'
;
protected
static
$unguarded
=
true
;
...
...
@@ -16,5 +17,4 @@ class Role extends Eloquent {
{
return
$this
->
belongsTo
(
'MysqlUser'
);
}
}
tests/models/Soft.php
View file @
c16f41cd
...
...
@@ -3,12 +3,12 @@
use
Jenssegers\Mongodb\Model
as
Eloquent
;
use
Jenssegers\Mongodb\Eloquent\SoftDeletes
;
class
Soft
extends
Eloquent
{
class
Soft
extends
Eloquent
{
use
SoftDeletes
;
protected
$collection
=
'soft'
;
protected
static
$unguarded
=
true
;
protected
$dates
=
[
'deleted_at'
];
}
tests/models/User.php
View file @
c16f41cd
...
...
@@ -6,7 +6,8 @@ use Illuminate\Auth\Passwords\CanResetPassword;
use
Illuminate\Contracts\Auth\Authenticatable
as
AuthenticatableContract
;
use
Illuminate\Contracts\Auth\CanResetPassword
as
CanResetPasswordContract
;
class
User
extends
Eloquent
implements
AuthenticatableContract
,
CanResetPasswordContract
{
class
User
extends
Eloquent
implements
AuthenticatableContract
,
CanResetPasswordContract
{
use
Authenticatable
,
CanResetPassword
;
...
...
tests/seeds/DatabaseSeeder.php
View file @
c16f41cd
...
...
@@ -2,8 +2,8 @@
use
Illuminate\Database\Seeder
;
class
DatabaseSeeder
extends
Seeder
{
class
DatabaseSeeder
extends
Seeder
{
/**
* Run the database seeds.
*
...
...
tests/seeds/UserTableSeeder.php
View file @
c16f41cd
...
...
@@ -3,7 +3,8 @@
use
Illuminate\Database\Seeder
;
use
Illuminate\Support\Facades\DB
;
class
UserTableSeeder
extends
Seeder
{
class
UserTableSeeder
extends
Seeder
{
public
function
run
()
{
...
...
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