Проверьте руководство миграции:
RequestHandlerComponent
Теперь переключает раскладку и шаблон на основе проанализированного расширения или Accept
заголовка в beforeRender()
обратного вызова вместо startup()
.
Cookbook > Appendices > 3.1 Migration Guide > RequestHandlerComponent
Таким образом, это означает, что вы установили там (там, где это, но уверен, что это не в Controller::beforeRender()
обратного вызова), будут перезаписаны после того, как действие контроллера побежал, и до представления .
Есть различные способы справиться с этим.
Сделать правильное использование компонента обработчика запросов, то есть, включить расширение синтаксического и поставить расширение в вашей URL, или отправить правильный Accept
заголовок. Таким образом, компонент установит правильный тип ответа.
Это рекомендуемый способ!
Смотрите также Cookbook > Views > JSON and XML views
Установите RequestHandlerComponent::$ext
свойство, которое оцениваемого до рендеринга, и будет вызывать компонент обработчика запроса установить ответ типа соответственно,
$this->RequestHandler->ext = 'xml';
Использование RequestHandlerComponent::renderAs()
для указания компонента обработчика запроса использовать настроенное представление XML, которое переопределит «неправильный» тип, установленный в обратном вызове beforeRender()
.
$this->RequestHandler->renderAs($this, 'xml');
Не используйте компонент обработчика запроса и установить ответ типа непосредственно на объект ответа.
$this->response->type('xml');
Всегда добавить надлежащий контекст, в данном случае, говоря, где именно ваш фрагмент кода находится в контроллере ! – ndm