mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
Merge pull request #7500 from cakephp/issue-7497
Correct input generation for postgres numeric types.
This commit is contained in:
commit
681956408d
2 changed files with 14 additions and 2 deletions
|
@ -353,6 +353,7 @@ class ValidateUser extends CakeTestModel {
|
||||||
'email' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'),
|
'email' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'),
|
||||||
'balance' => array('type' => 'float', 'null' => false, 'length' => '5,2'),
|
'balance' => array('type' => 'float', 'null' => false, 'length' => '5,2'),
|
||||||
'cost_decimal' => array('type' => 'decimal', 'null' => false, 'length' => '6,3'),
|
'cost_decimal' => array('type' => 'decimal', 'null' => false, 'length' => '6,3'),
|
||||||
|
'null_decimal' => array('type' => 'decimal', 'null' => false, 'length' => null),
|
||||||
'ratio' => array('type' => 'decimal', 'null' => false, 'length' => '10,6'),
|
'ratio' => array('type' => 'decimal', 'null' => false, 'length' => '10,6'),
|
||||||
'population' => array('type' => 'decimal', 'null' => false, 'length' => '15,0'),
|
'population' => array('type' => 'decimal', 'null' => false, 'length' => '15,0'),
|
||||||
'created' => array('type' => 'date', 'null' => '1', 'default' => '', 'length' => ''),
|
'created' => array('type' => 'date', 'null' => '1', 'default' => '', 'length' => ''),
|
||||||
|
@ -2045,6 +2046,17 @@ class FormHelperTest extends CakeTestCase {
|
||||||
);
|
);
|
||||||
$this->assertTags($result, $expected);
|
$this->assertTags($result, $expected);
|
||||||
|
|
||||||
|
$result = $this->Form->input('ValidateUser.null_decimal');
|
||||||
|
$expected = array(
|
||||||
|
'div' => array('class'),
|
||||||
|
'label' => array('for'),
|
||||||
|
'Null Decimal',
|
||||||
|
'/label',
|
||||||
|
'input' => array('name', 'type' => 'number', 'step' => 'any', 'id'),
|
||||||
|
'/div',
|
||||||
|
);
|
||||||
|
$this->assertTags($result, $expected);
|
||||||
|
|
||||||
$result = $this->Form->input('ValidateUser.ratio');
|
$result = $this->Form->input('ValidateUser.ratio');
|
||||||
$expected = array(
|
$expected = array(
|
||||||
'div' => array('class'),
|
'div' => array('class'),
|
||||||
|
|
|
@ -1209,10 +1209,10 @@ class FormHelper extends AppHelper {
|
||||||
if ($options['type'] === 'number' &&
|
if ($options['type'] === 'number' &&
|
||||||
!isset($options['step'])
|
!isset($options['step'])
|
||||||
) {
|
) {
|
||||||
if ($type === 'decimal') {
|
if ($type === 'decimal' && isset($fieldDef['length'])) {
|
||||||
$decimalPlaces = substr($fieldDef['length'], strpos($fieldDef['length'], ',') + 1);
|
$decimalPlaces = substr($fieldDef['length'], strpos($fieldDef['length'], ',') + 1);
|
||||||
$options['step'] = sprintf('%.' . $decimalPlaces . 'F', pow(10, -1 * $decimalPlaces));
|
$options['step'] = sprintf('%.' . $decimalPlaces . 'F', pow(10, -1 * $decimalPlaces));
|
||||||
} elseif ($type === 'float') {
|
} elseif ($type === 'float' || $type === 'decimal') {
|
||||||
$options['step'] = 'any';
|
$options['step'] = 'any';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue