ZF2: Zend Framework 2 — как визуализировать вывод без макета

Я знаю, что могу использовать это

public function providerAction()
{
    $result = new ViewModel();
    $result->setTerminal(true);

   return $result;
}

Но как передать переменные для просмотра? Прежде чем я сделал это

return array('items' => $items);

Но теперь у меня есть только один вариант: либо вернуть массив, а затем макет есть, либо вернуть $result, тогда переменных нет в представлении.


person Sergey Romanov    schedule 11.06.2012    source источник
comment
Еще один аналогичный вопрос с более подробным ответом. См. stackoverflow.com/a/9870758/951920.   -  person Terre Porter    schedule 01.10.2012


Ответы (2)


В вашем примере вы можете написать так:

public function providerAction()
{
    $result = new ViewModel();
    $result->setTerminal(true);
    $result->setVariables(array('items' => 'items'));
    return $result;
}
person AlloVince    schedule 11.06.2012
comment
Это отличный ответ, было бы хорошо, если бы вы его приняли :) - person Tony Bogdanov; 01.07.2013

Предыдущий ответ работает отлично. Я просто хочу добавить, что вместо использования setVariables вы также можете напрямую передавать свои переменные при создании экземпляра ViewModel следующим образом:

$result = new ViewModel(array('items' => $items));
person Patito    schedule 24.02.2014