diff --git a/src/Fieldtypes/Toggle.php b/src/Fieldtypes/Toggle.php index a689de319d6..8deb4cf095f 100644 --- a/src/Fieldtypes/Toggle.php +++ b/src/Fieldtypes/Toggle.php @@ -69,4 +69,9 @@ public function filter() { return new ToggleFilter($this); } + + public function toQueryableValue($value) + { + return (bool) $value; + } } diff --git a/tests/Fieldtypes/ToggleTest.php b/tests/Fieldtypes/ToggleTest.php index d9089020449..7798bcfaf42 100644 --- a/tests/Fieldtypes/ToggleTest.php +++ b/tests/Fieldtypes/ToggleTest.php @@ -28,4 +28,14 @@ public function it_processes_to_a_boolean_only_when_value_is_actually_set_or_sub $this->assertFalse($field->process(false)); $this->assertNull($field->process(null)); } + + #[Test] + public function queryable_value_is_a_boolean() + { + $field = (new Toggle)->setField(new Field('test', ['type' => 'toggle'])); + + $this->assertTrue($field->toQueryableValue(true)); + $this->assertFalse($field->toQueryableValue(false)); + $this->assertFalse($field->toQueryableValue(null)); + } }