diff --git a/src/Illuminate/Validation/Rules/DatabaseRule.php b/src/Illuminate/Validation/Rules/DatabaseRule.php index 7789008483fa..bdb5408f78df 100644 --- a/src/Illuminate/Validation/Rules/DatabaseRule.php +++ b/src/Illuminate/Validation/Rules/DatabaseRule.php @@ -3,6 +3,7 @@ namespace Illuminate\Validation\Rules; use Closure; +use Illuminate\Contracts\Support\Arrayable; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Str; @@ -81,12 +82,12 @@ public function resolveTableName($table) * Set a "where" constraint on the query. * * @param \Closure|string $column - * @param array|string|int|null $value + * @param \Illuminate\Contracts\Support\Arrayable|array|string|int|null $value * @return $this */ public function where($column, $value = null) { - if (is_array($value)) { + if ($value instanceof Arrayable || is_array($value)) { return $this->whereIn($column, $value); } @@ -107,12 +108,12 @@ public function where($column, $value = null) * Set a "where not" constraint on the query. * * @param string $column - * @param array|string $value + * @param \Illuminate\Contracts\Support\Arrayable|array|string $value * @return $this */ public function whereNot($column, $value) { - if (is_array($value)) { + if ($value instanceof Arrayable || is_array($value)) { return $this->whereNotIn($column, $value); } @@ -145,10 +146,10 @@ public function whereNotNull($column) * Set a "where in" constraint on the query. * * @param string $column - * @param array $values + * @param \Illuminate\Contracts\Support\Arrayable|array $values * @return $this */ - public function whereIn($column, array $values) + public function whereIn($column, $values) { return $this->where(function ($query) use ($column, $values) { $query->whereIn($column, $values); @@ -159,10 +160,10 @@ public function whereIn($column, array $values) * Set a "where not in" constraint on the query. * * @param string $column - * @param array $values + * @param \Illuminate\Contracts\Support\Arrayable|array $values * @return $this */ - public function whereNotIn($column, array $values) + public function whereNotIn($column, $values) { return $this->where(function ($query) use ($column, $values) { $query->whereNotIn($column, $values);