У меня есть проблема с использованием следующих CallBackTransformer
:Symfony трансформатор всегда получает нулевое значение
$builder->add(
$builder
->create('codes', 'hidden')
->addModelTransformer(new CallbackTransformer(
function ($codesCollection) {
if (!$codesCollection) {
return "{}"; // This is always returned
}
return implode(",", $codeCollection->toArray());
},
function ($codesString) {
return $codesString;
}
))
)
);
codes
свойство объекта, для которого используется эта форма многие-ко-многим, и в Я тестирую, я проверил, что значение установлено как ожидалось.
Обратный вызов обратного преобразования возвращает ожидаемую строку ($codeString
), однако обратный вызов преобразования получает значение null
в качестве параметра каждый раз. Я ожидаю, что это будет ArrayCollection
, которое я получаю при вызове getCodes
на сущности.
Что я могу делать неправильно в этом случае?
> Чтобы увидеть другой результат, вам нужно поместить значение по умолчанию в поле кодов (если оно еще не приходит из БД, например). Дело в том, что я ожидаю, что он получит значение из базы данных, где «коды» - это отношение «многие ко многим», которое я подтвердил, что на самом деле хранит данные. Поэтому я ожидаю, что данные («ArrayCollection» связанных объектов) будут переданы в обратный вызов преобразования. Я ошибаюсь в ожидании, что так будет? – madshvero
Я думаю, вы должны показать нам эту часть, тогда вы вызываете этот тип формы. – yceruto