2014-11-28 4 views
0

Я хочу проанализировать и внести изменения в HTML, который я хочу отправить клиенту, прямо перед его отправкой.Могу ли я обработать свой ответ прямо перед отправкой его клиенту в Laravel 4.2?

Я понял, я мог бы использовать App::after фильтр, который выставляет обе response и request объекты для меня, но потом я застрял ...

Я хочу, чтобы каким-то образом получить HTML от ответа, разобрать его, измените его и отправьте измененный HTML на клиент вместо этого, но не можете найти какие-либо свойства/методы, которые я могу использовать в объекте response.

Вызов dd($response) падает мой браузер и не может найти все, что связано в Laravel сайте ...

Кто-нибудь знает, как/если то, что я хочу сделать, это возможно?

+0

После фильтров сделать что-то после того, как ответ был послан. Это будет проще, если вы выполните следующее. Вы можете отобразить HTML с помощью метода render() на вашем представлении. И используйте вспомогательную функцию для ее изменения. Эта вспомогательная функция может быть местом в вашем BaseController, который затем будет доступен для всех контроллеров. –

ответ

0

Похоже, что все, что мне нужно было сделать, это использовать методы getContent и setContent объекта $response.

Так что мой фильтр теперь выглядит примерно так:

App::after(function($request, $response){ 
    $html = $response->getContent(); 
    $html = Helpers::transformHtml($html); 

    $response->setContent($html); 
}); 
Смежные вопросы