diff --git a/src/Modifiers/CoreModifiers.php b/src/Modifiers/CoreModifiers.php index 79d6b2e696..57a114ebcc 100644 --- a/src/Modifiers/CoreModifiers.php +++ b/src/Modifiers/CoreModifiers.php @@ -2460,6 +2460,22 @@ public function title($value) return Stringy::titleize($value, $ignore); } + /** + * Convert value to a boolean. + * + * @param $params + * @param $value + * @return bool + */ + public function toBool($value, $params) + { + if (is_string($value)) { + return Str::toBool($value); + } + + return boolval($value); + } + /** * Converts the data to json. * diff --git a/tests/Modifiers/ToBoolTest.php b/tests/Modifiers/ToBoolTest.php new file mode 100644 index 0000000000..8cacabfb75 --- /dev/null +++ b/tests/Modifiers/ToBoolTest.php @@ -0,0 +1,26 @@ +assertTrue($this->modify(1)); + $this->assertFalse($this->modify(0)); + $this->assertTrue($this->modify('foo')); + $this->assertFalse($this->modify('false')); + $this->assertFalse($this->modify('FALSE')); + $this->assertFalse($this->modify('False')); + $this->assertTrue($this->modify(new \stdClass)); + } + + private function modify($value) + { + return Modify::value($value)->toBool()->fetch(); + } +}