Intereting Posts
Получение слишком большого количества запросов у моего пользователя бота из slack Загрузка файла PHP Проверка загрузки файлов в Codeigniter как ограничить зарегистрированного пользователя от попыток голосования дважды Laravel 5 в конфигурации php artisan: сгенерирована сгенерированная ошибка Closure :: __ set_state () Визуализация MP3 – PHP Правильный способ избежать ввода данных перед переходом на ODBC PHP – Загрузка изображения и отображение на странице Использование mysql_real_escape_string с PDO (без подключения к локальному серверу) Вызов неопределенного метода Illuminate \ Database \ Query \ Builder :: lists () при посеве после обновления до Laravel 5.3 Вставка арабских данных в базу данных mysql Вызов неопределенной функции oci_connect, php_oci8_12c.dll, windows 8.1, php5.6.6 Размер памяти исчерпан при попытке использовать MySQLi Получение элемента из массива PHP, возвращаемого функцией phpMyAdmin Неустранимая ошибка: вызов неопределенной функции __ ()

Могу ли я визуализировать представление, не возвращая его в контроллере действий в zend framework 2?

Теперь я делаю так:

public function indexAction() { ... $view = new ViewModel(array( 'foo' => 'bar', )); return $view; } 

Проблема в том, что я хочу что-то сделать после рендеринга $ view и перед рендерингом макета:

 public function indexAction() { ... $view = new ViewModel(array( 'foo' => 'bar', )); $layout = $this->layout(); $layout->content = $view->render(); ... // here I want to do some important action ... $html = $layout->render(); return $this->getResponse()->setContent($html); } 

Но метод render () отсутствует. В ZF1 я мог бы сделать вид:

 $view = new Zend_View($data); $html = $view->render($templateName); 

Как это сделать в ZF2?

Solutions Collecting From Web of "Могу ли я визуализировать представление, не возвращая его в контроллере действий в zend framework 2?"

Попробуй это:

 public function IndexAction() { ... $viewRender = $this->getServiceLocator()->get('ViewRenderer'); $html = $viewRender->render($viewModel); ... } 

Дополняя ответ, с включенным макетом …

 public function IndexAction() { ... $viewRender = $this->getServiceLocator()->get('ViewRenderer'); $layout = new ViewModel(); $layout->setTemplate("layout/main"); $layout->setVariable("content", $viewRender->render($viewModel)); $html = $viewRender->render($layout); ... }