Используя Zend Framework 2 и AbstractRestfulController, где действие getList реализовано следующим образом:
public function getList() {
return new ViewModel(array(
'entities' = array(1 => array(/*..*/), 2 => array(/*..*/))
));
}
Я добавил JsonStrategy в диспетчер представлений, поэтому, когда мой UA отправляет Accept: text/html
, ZF2 использует правильное представление для форматирования данных. Когда мой UA отправляет Accept: application/json
, ZF2 (правильно) отвечает application/json
и JSON кодирует данные.
Но теперь все объекты заключены в узел «контент» (свойство ViewModel::$captureTo
).
Если контроллер действий возвращает JsonModel, я могу этого избежать. Но тогда JsonStrategy всегда отвечает application/json без проверки Accept.
Есть ли способ избежать этого при использовании ViewModel, а не JsonModel?