Я пытаюсь написать валидатор для формы, которая имеет строковые и плавающие типы.Если я создаю новый объект, который не был сохранен в базе данных, все работает нормально.Но если я редактирую объект, который был сохранен в базе данных, и я устанавливаю пустое значение строки или числа с плавающей точкой, я получаю
Expected argument of type "float", null given at property path "price"
ошибок.
Обходной путь для строкового поля устанавливал
'empty_data' => '',
или создание преобразователя данных как такового
namespace App\Form\DataTransformer;
use Symfony\Component\Form\DataTransformerInterface;
class NullToEmptyTransformer implements DataTransformerInterface
{
/**
* Does not transform anything
*
* @param string|null $value
* @return string
*/
public function transform($value)
{
return $value;
}
/**
* Transforms a null to an empty string.
*
* @param string $value
* @return string
*/
public function reverseTransform($value)
{
if (is_null($value)) {
return '';
}
return $value;
}
}
Но это не может быть применено к плавающему полю.Каково лучшее решение для проверки пустых полей с плавающей запятой, которые ранее имели значение в базе данных?
РЕДАКТИРОВАТЬ: я нашел решение.Проблема была в установщиках сущностей.Он ожидал только float, поэтому мне пришлось изменить тип параметра на? Float.