В одном из моих приложений Symfony я столкнулся со странным поведением доктрины ODM.То, что я пытаюсь сделать, это просто сохранить десятичные данные в нашей базе данных Informix.Всякий раз, когда я пытаюсь это сделать, все, что находится за десятичным разделителем, обрезается.
Я пробовал несколько способов назначения данных, таких как:
- $ position-> setFrpProz (1.2345);
- $ position-> setFrpProz ("1.2345");
- $ position-> setFrpProz ("1,2345");
Результат в базе данных всегда: 1.0000
Это yml для сущности:
frpProz:
type: decimal
nullable: true
precision: 10
scale: 4
column: frp_proz
В Informix поле базы данных также определяется как десятичное число (10,4).
Я уже пробовалDoctrine EchoSQLLogger со следующими результатами (сокращенно):
"START TRANSACTION"
UPDATE st_frb_mpos SET frp_proz = ?, [...] WHERE [...]
array(15) {
[0]=>
string(6) "1.2345"
[...]
}
array(15) {
[0]=>
string(7) "decimal"
[...]
}
"COMMIT"
"okay"
Я действительно не знаю, как решить эту проблему.Я уже пытался обновить свое приложение с Symfony 2.8.до 3.4.15 - без разницы в этой теме.
Спасибо за помощь!