Невозможно сериализовать виртуальные свойства в schmittjoh / serializer

Один из моих классов, который я сериализую, имеет виртуальное свойство, которое я хотел бы увидеть. Я использую конфигурацию yaml.

Вот ямл:

Namespace\Model\Keg:
exclusion_policy: ALL
properties:
A list of properties that work
virtual_properties:
getKegImage:
serialized_name: image

Вот класс:

namespace Namespace\Model;

class Keg extends ModelAbstract
{
/** Some properties + accessors **/

/**
* @param bool $asImgTag Whether or not to return the URL in an <img> tag
* @return array
*/
public function getKegImage ($asImgTag = false)
{
return [
'Key' => 'value',
'Key' => 'value',
'Key' => 'value'
];
}
}

Когда я сериализую модель, я ожидаю увидеть поле изображения в json с массивом в качестве его значения. Вместо этого поле отсутствует. Я перепробовал множество комбинаций настроек в файле yaml и не могу его показать.

2

Решение

Из этого кода видно, что виртуальные свойства не поддерживаются с использованием метаданных yaml. К счастью, вы можете смешивать источники метаданных, если хотите. Я просто добавил аннотацию @VirtualProperty Doctrine к методу, и она работала, как и ожидалось.

0

Другие решения

Виртуальные свойства поддерживаются в YAML на данный момент.

Для коллег Google, если вы используете groupsубедитесь, что вы перечислили их в определении виртуального свойства, а также хотя официальная ссылка на YAML не перечисляет их в качестве возможных значений.

0

По вопросам рекламы [email protected]