Привет. Хотел бы поинтересоваться как вы обходите ошибки: "Typed property must

not be accessed before initialization"

Предположим у нас есть некий DTO

class DTO {
public int $value;
public int $value2:
}

К нам приходит запрос например с такими данными: { "value2": 150}

Сериалайзер конвертнер json в dto, валидатор его провалидирует успешно.

Что я хочу ? - Я хочу фронту сказать пожалуйста заполни мне переменную $value;

На текущий момент можно навесить @Assert\NotBlank и сделать свойство public ?int $value = null - но мне этот вариант не подходит.


Можно через рефлексию посмотреть что свойство не проинициазировано и выкинуть ошибку фронту, вопрос где это лучше сделать и можно ли на уровне загрузки мета данных валидатора например по интерфейсу определить дто и на них где-то навесить свое ограничение

2 ответов

11 просмотров

Вроде как вмержили https://github.com/symfony/symfony/pull/42502. Должно помочь.

Александр-Латухин Автор вопроса
Сила в правде!
Вроде как вмержили https://github.com/symfony/symf...

спасибо, надо обновляться, сами еще на 4-ке сидим, буду смотреть

Похожие вопросы

Обсуждают сегодня

Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
с помощью чего можно бота добавить как админа в чат? (условно в боте есть кнопка, нажатие на которую приводит тебя к выбору чата и выдаче прав боту)
ηє νєямσяє
5
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
Добрый день, подскажите как правильно сделать filter в backend-e. Есть модель (товар) у который связь belongsToMany (компания), компаний > 4k, поэтому выборку типа ->all(); н...
Max Dubovsky
7
А как заставить поиск искать? Есть такая формочка <select class="form-control custom-select" name="brand_id" data-handler="onGetBrands"></select>
Денис Александрович
5
А цены чем оправданы?
Lencore
7
Каким то образом можно определить ширину экрана пользователя перед загрузкой partial-а? Надо рассчитать ширину кадров слайдера для ресайза картинок для container-fluid.
Point 111
22
напомните, как заменить placeholder , а не добавить содержимое ?
Artem N
4
Карта сайта