diff --git a/src/ORM/FieldType/DBCurrency.php b/src/ORM/FieldType/DBCurrency.php index bde0a26a7..f012b6ddc 100644 --- a/src/ORM/FieldType/DBCurrency.php +++ b/src/ORM/FieldType/DBCurrency.php @@ -2,6 +2,8 @@ namespace SilverStripe\ORM\FieldType; +use SilverStripe\Forms\CurrencyField; + /** * Represents a decimal field containing a currency amount. * The currency class only supports single currencies. For multi-currency support, use {@link Money} @@ -67,4 +69,15 @@ class DBCurrency extends DBDecimal return $this; } + + /** + * @param string $title + * @param array $params + * + * @return CurrencyField + */ + public function scaffoldFormField($title = null, $params = null) + { + return CurrencyField::create($this->getName(), $title); + } } diff --git a/tests/php/ORM/DBCurrencyTest.php b/tests/php/ORM/DBCurrencyTest.php index f2a976fbc..135fe7fe3 100644 --- a/tests/php/ORM/DBCurrencyTest.php +++ b/tests/php/ORM/DBCurrencyTest.php @@ -2,6 +2,7 @@ namespace SilverStripe\ORM\Tests; +use SilverStripe\Forms\CurrencyField; use SilverStripe\ORM\FieldType\DBCurrency; use SilverStripe\Dev\SapphireTest; @@ -41,4 +42,13 @@ class DBCurrencyTest extends SapphireTest $this->assertEquals($niceValues[1], $c->Whole()); } } + + public function testScaffoldedField() + { + // Test DBCurrency scaffolds a CurrencyField + $currencyDbField = DBCurrency::create('Currency'); + $scaffoldedField = $currencyDbField->scaffoldFormField(); + + $this->assertInstanceOf(CurrencyField::class, $scaffoldedField); + } }