Возврат данных с помощью Zend Framework Helper View

Я создаю помощник представления, чтобы иметь дело с возвратом некоторого экрана данных, извлеченного из другого места, и мой вопрос, каков наилучший способ собрать собранные данные и вернуть их для использования в представлении?

Предположим, что помощник вида выходит и успешно захватывает несколько div, полных данных.

Должен ли я вернуть массив данных и повторить это в представлении?

$i = 0
foreach($this->myHelper as $noob) {
    echo '<div><h3>'.$noob[$i][0].'</h3><a href="'.$noob[$i][1].'">'.$noob[$i][2].'</a></div>';
    $i++;
}

или, возможно, построить вывод в помощнике представления и вернуть весь лот в виде строки?

echo $this->myHelper;
/* giving me something like: 
    <div><h3>Foo1</h3><a href="bar1.htm">bar1</a></div>
    <div><h3>Foo2</h3><a href="bar2.htm">bar2</a></div>
*/

или вернуть объект, а не массив или каким-то другим способом, который мне не хватает (или облажаться в приведенных выше примерах)? Заранее спасибо.

1 ответ

Решение

Я бы добавил частичный аргумент представления и передал данные в назначенный частичный сценарий, возвращая результат, используя partial или же partialLoop помощники (в зависимости от ваших данных), например

<?php echo $this->myHelper('path/to/partial.phtml') ?>

и в твоем помощнике

return $this->partial($partialScript, $data);

Редактирование Если вы хотите упростить вещи, вы можете сделать частичный аргумент необязательным, а если его не было, создайте внутреннюю HTML-строку.

Основные идеи с помощью помощников представления состоят в том, что они возвращают строки или объекты, которые реализуют __toString()

Другие вопросы по тегам