У меня есть класс, который я хочу сериализовать, но exclude
общедоступное свойство. До сих пор я пробовал @Exclude
, но у меня не получилось (см. Результат).
Любые идеи, как решить эту проблему?
Объект:
class Checkout extends Entity
{
/**
* @Exclude()
*/
public $normalizerCallbacks = [
'a' => 1,
'b' => 2,
];
..........
Сериализировать:
$checkout = $this->getDoctrine()->getRepository('App:Checkout')->find($id);
$serializer = $this->get('jms_serializer');
$data = $serializer->serialize($checkout, 'json');
Результат:
{
normalizer_callbacks: {
a: 1
b: 2
}
}
Изменить: Пробная версия 2015-09-10 18 --> Не работает
use JMS\Serializer\Annotation as JMS;
/**
* User
*
* @ORM\Table(name="checkout", options={"collate"="utf8_general_ci"})
* @ORM\Entity
*
* @JMS\ExclusionPolicy("none")
*/
class Checkout extends Entity
{
/**
* @JMS\Exclude();
*/
public $normalizerCallbacks = [
...
Изменить: Пробная версия 2015-09-11 09 (Обновление 12) --> Конфигурация
- Добавьте в
"jms/serializer-bundle": "^1.0"
композитор и запустите обновление - Добавьте
new JMS\SerializerBundle\JMSSerializerBundle()
кAppKernel
- Добавить
jms_serializer.camel_case_naming_strategy.class: JMS\Serializer\Naming\IdenticalPropertyNamingStrategy
кparameters.yml
- Затем использовал его, как в Serialize.