Это, наверное, тривиальный вопрос, но я не могу понять это.CakePHP3: подтверждение десятичного ввода
Я хочу, чтобы мое значение price
имело 2 знака после запятой. CakePHP должен проверить это, но это не так. CakePHP только проверяет, является ли ввод числом и не позволяет передавать десятичные значения.
Я хочу, чтобы это проверили и передали значения, такие как 2.22
, а также 2
. Теперь он позволяет только последний.
Часть validationDefault
метода:
$validator
->decimal('price')
->allowEmpty('price');
Я проверил CakePHP API и нашел decimal()
описание метода:
decimal(float $check , integer|null $places null , string|null $regex null)
Проверяет, что значение является действительным десятичным. Оба знака и экспонента - .
Но он не принимает string
в качестве параметра в этом контексте (и CakePHP назначить decimal()
моей price
колонки автоматически во время выпечки), так что я думаю, это почему decimal('price', 2)
не работают.
Любые идеи?
ЗАПРОШЕННЫЙ EDIT:
Всего validationDefault
метод:
public function validationDefault(Validator $validator)
{
//$validator for other columns
$validator
->allowEmpty('price')
->add('price', 'money', array('rule' =>
array('money', 'left'),
'message' => 'Please supply a valid monetary amount.'));
return $validator;
}
Мой поле ввода создается с помощью HTML-помощника.
Спасибо за ваш ответ. Я копирую-вставляю эту строку кода (и удаляю предыдущий «десятичный (« цена »)), но он все еще хочет только целые числа. – PHPJunior
он работает для меня – pradeep
попробуйте удалить 'left' его по желанию, если нет, то покажите мне ваш код подтверждения – pradeep