diff --git a/src/Illuminate/Validation/Rules/DatabaseRule.php b/src/Illuminate/Validation/Rules/DatabaseRule.php index d641dcf1369b..c7dc79d54b2a 100644 --- a/src/Illuminate/Validation/Rules/DatabaseRule.php +++ b/src/Illuminate/Validation/Rules/DatabaseRule.php @@ -2,6 +2,7 @@ namespace Illuminate\Validation\Rules; +use BackedEnum; use Closure; use Illuminate\Contracts\Support\Arrayable; use Illuminate\Database\Eloquent\Model; @@ -81,7 +82,7 @@ public function resolveTableName($table) * Set a "where" constraint on the query. * * @param \Closure|string $column - * @param \Illuminate\Contracts\Support\Arrayable|array|string|int|bool|null $value + * @param \Illuminate\Contracts\Support\Arrayable|\BackedEnum|\Closure|array|string|int|bool|null $value * @return $this */ public function where($column, $value = null) @@ -98,6 +99,10 @@ public function where($column, $value = null) return $this->whereNull($column); } + if ($value instanceof BackedEnum) { + $value = $value->value; + } + $this->wheres[] = compact('column', 'value'); return $this; @@ -107,7 +112,7 @@ public function where($column, $value = null) * Set a "where not" constraint on the query. * * @param string $column - * @param \Illuminate\Contracts\Support\Arrayable|array|string $value + * @param \Illuminate\Contracts\Support\Arrayable|\BackedEnum|array|string $value * @return $this */ public function whereNot($column, $value) @@ -116,6 +121,10 @@ public function whereNot($column, $value) return $this->whereNotIn($column, $value); } + if ($value instanceof BackedEnum) { + $value = $value->value; + } + return $this->where($column, '!'.$value); }