FOSRestBundle, отфильтровывая свойства объекта в ответе JSON

Я создаю API для проекта Symfony2 с использованием FOSRestBundle, и я часто просто возвращаю объекты Doctrine для кодирования в JSON. Обычно так:

/**
* @Rest\View()
*/
public function getEventsAction(Request $request)
{
// security checks

return $this->getDoctrine()->getRepository('SomeBundle:Event')->findAll();
}

Дело в том, что это возвращает все свойства объекта и отношения, и во многих случаях я не хочу этого, например, с объектом User, который содержит хешированный пароль и все.

Есть ли способ настроить автоматические фильтры при кодировании объектов Doctrine в JSON? Или мне нужно создать QueryBuilder только для извлечения необходимых данных?

1

Решение

Я настоятельно рекомендую использовать JMSSerializerBundle, это даст вам столько вариантов, сколько вам нужно. После того, как вы включили его в свой проект, вы можете настроить свои объекты так, чтобы сериализировать только определенные свойства. Есть довольно много способов сделать это, вы можете увидеть все разные способы в стратегии исключения часть документации.

Вы можете исключить конкретные свойства и многое другое. Взглянуть.

Кроме того, взгляните на мой другой ответ немного больше информации о том, как использовать его с FOSRestBundle

4

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

Других решений пока нет …

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