@@ -13,15 +13,15 @@ class Builder extends EloquentBuilder
13
13
* @var array
14
14
*/
15
15
protected $ passthru = [
16
- 'toSql ' , 'lists ' , ' insert ' , 'insertGetId ' , 'pluck ' ,
16
+ 'toSql ' , 'insert ' , 'insertGetId ' , 'pluck ' ,
17
17
'count ' , 'min ' , 'max ' , 'avg ' , 'sum ' , 'exists ' , 'push ' , 'pull ' ,
18
18
];
19
19
20
20
/**
21
21
* Update a record in the database.
22
22
*
23
- * @param array $values
24
- * @param array $options
23
+ * @param array $values
24
+ * @param array $options
25
25
* @return int
26
26
*/
27
27
public function update (array $ values , array $ options = [])
@@ -40,7 +40,7 @@ public function update(array $values, array $options = [])
40
40
/**
41
41
* Insert a new record into the database.
42
42
*
43
- * @param array $values
43
+ * @param array $values
44
44
* @return bool
45
45
*/
46
46
public function insert (array $ values )
@@ -59,8 +59,8 @@ public function insert(array $values)
59
59
/**
60
60
* Insert a new record and get the value of the primary key.
61
61
*
62
- * @param array $values
63
- * @param string $sequence
62
+ * @param array $values
63
+ * @param string $sequence
64
64
* @return int
65
65
*/
66
66
public function insertGetId (array $ values , $ sequence = null )
@@ -97,9 +97,9 @@ public function delete()
97
97
/**
98
98
* Increment a column's value by a given amount.
99
99
*
100
- * @param string $column
101
- * @param int $amount
102
- * @param array $extra
100
+ * @param string $column
101
+ * @param int $amount
102
+ * @param array $extra
103
103
* @return int
104
104
*/
105
105
public function increment ($ column , $ amount = 1 , array $ extra = [])
@@ -127,9 +127,9 @@ public function increment($column, $amount = 1, array $extra = [])
127
127
/**
128
128
* Decrement a column's value by a given amount.
129
129
*
130
- * @param string $column
131
- * @param int $amount
132
- * @param array $extra
130
+ * @param string $column
131
+ * @param int $amount
132
+ * @param array $extra
133
133
* @return int
134
134
*/
135
135
public function decrement ($ column , $ amount = 1 , array $ extra = [])
@@ -155,19 +155,21 @@ public function decrement($column, $amount = 1, array $extra = [])
155
155
/**
156
156
* Add the "has" condition where clause to the query.
157
157
*
158
- * @param \Illuminate\Database\Eloquent\Builder $hasQuery
159
- * @param \Illuminate\Database\Eloquent\Relations\Relation $relation
160
- * @param string $operator
161
- * @param int $count
162
- * @param string $boolean
158
+ * @param \Illuminate\Database\Eloquent\Builder $hasQuery
159
+ * @param \Illuminate\Database\Eloquent\Relations\Relation $relation
160
+ * @param string $operator
161
+ * @param int $count
162
+ * @param string $boolean
163
163
* @return \Illuminate\Database\Eloquent\Builder
164
164
*/
165
165
protected function addHasWhere (EloquentBuilder $ hasQuery , Relation $ relation , $ operator , $ count , $ boolean )
166
166
{
167
167
$ query = $ hasQuery ->getQuery ();
168
168
169
169
// Get the number of related objects for each possible parent.
170
- $ relationCount = array_count_values ($ query ->lists ($ relation ->getHasCompareKey ()));
170
+ $ relationCount = array_count_values (array_map (function ($ id ) {
171
+ return (string )$ id ; // Convert Back ObjectIds to Strings
172
+ }, $ query ->pluck ($ relation ->getHasCompareKey ())));
171
173
172
174
// Remove unwanted related objects based on the operator and count.
173
175
$ relationCount = array_filter ($ relationCount , function ($ counted ) use ($ count , $ operator ) {
@@ -207,7 +209,7 @@ protected function addHasWhere(EloquentBuilder $hasQuery, Relation $relation, $o
207
209
/**
208
210
* Create a raw database expression.
209
211
*
210
- * @param closure $expression
212
+ * @param closure $expression
211
213
* @return mixed
212
214
*/
213
215
public function raw ($ expression = null )
@@ -219,17 +221,13 @@ public function raw($expression = null)
219
221
if ($ results instanceof Cursor) {
220
222
$ results = iterator_to_array ($ results , false );
221
223
return $ this ->model ->hydrate ($ results );
222
- }
223
-
224
- // Convert Mongo BSONDocument to a single object.
224
+ } // Convert Mongo BSONDocument to a single object.
225
225
elseif ($ results instanceof BSONDocument) {
226
226
$ results = $ results ->getArrayCopy ();
227
- return $ this ->model ->newFromBuilder ((array ) $ results );
228
- }
229
-
230
- // The result is a single object.
227
+ return $ this ->model ->newFromBuilder ((array )$ results );
228
+ } // The result is a single object.
231
229
elseif (is_array ($ results ) and array_key_exists ('_id ' , $ results )) {
232
- return $ this ->model ->newFromBuilder ((array ) $ results );
230
+ return $ this ->model ->newFromBuilder ((array )$ results );
233
231
}
234
232
235
233
return $ results ;
0 commit comments