При отправке формы с пустыми необязательными полями, Symfony преобразует их значения в пустые строки ("") по умолчанию. Это связано с тем, что пустые строки являются допустимыми значениями для текстовых полей, и Symfony следует этой конвенции.
Однако, если вы хотите исправить это поведение и получать значения полей как null, вы можете использовать параметр "empty_data" в опциях формы. Например:
```php
$builder->add('title', TextType::class, [
'empty_data' => null,
]);
$builder->add('description', TextareaType::class, [
'empty_data' => null,
]);
```
Теперь, если поле не заполнено, его значение будет передаваться как null.
Если вам нужно проверять, было ли поле заполнено или оставлено пустым, вы можете использовать функцию "isRequired" в вашей форме. Например:
```php
$builder->add('title', TextType::class, [
'required' => false,
]);
$builder->add('description', TextareaType::class, [
'required' => false,
]);
```
Затем вы можете проверить их значение на null или пустые строки в вашем контроллере, например:
```php
if ($form->get('title')->getData() === null) {
// Поле "title" не было заполнено
}
if ($form->get('description')->getData() === '') {
// Поле "description" было оставлено пустым
}
```
Надеюсь, это поможет вам разобраться с проблемой значения полей в Symfony.