zf2:无法遍历部分视图(不能使用Zend \ View \ Renderer \ PhpRenderer类型的对象作为数组)

时间:2013-07-30 23:50:53

标签: php zend-framework2 partial

我有这个html部分用于组合一个html选项框,当我知道我需要创建的html选项框的数量时它很有效。

控制器:

    $formView = new ViewModel();  
    $formView->setTemplate('bns/questionnaires/forms/simple_scale_radio_form');

    $optionView = new ViewModel(array('name'=>'name 1'));
    $optionView->setTemplate('bns/questionnaires/forms/options_personality_profile');
    $formView->addChild($optionView, 'option_0');

查看:

    <?php echo $this['option_0'] ?>

但是,现在我正在从数据库动态构建这个html选项框,如果我希望这样做,我正在考虑使用以下代码

控制器:

$ formView = new ViewModel(array('count'=&gt; 3));
        $ formView-&GT; setTemplate( 'BNS /问卷/形式/ simple_scale_radio_form');

    $optionView = new ViewModel(array('name'=>'name 1'));
    $optionView->setTemplate('bns/questionnaires/forms/options_personality_profile');
    $formView->addChild($optionView, 'option_0');

    $optionView = new ViewModel(array('name'=>'name 2'));
    $optionView->setTemplate('bns/questionnaires/forms/options_personality_profile');
    $formView->addChild($optionView, 'option_1');

    $optionView = new ViewModel(array('name'=>'name 3'));
    $optionView->setTemplate('bns/questionnaires/forms/options_personality_profile');
    $formView->addChild($optionView, 'option_2');

查看:

<?php 
        for ( $i = 0; $i < $count; $i++) {
            echo $this['option_' . $i];
        }
?>

但是,PHP会抛出此错误:无法使用Zend \ View \ Renderer \ PhpRenderer类型的对象作为数组

我有什么选择?

提前致谢!

干杯,

贾斯汀

1 个答案:

答案 0 :(得分:0)

K,所以,我认为我的情况太复杂了。使用partial的替代方法是使用partialLoop:

http://framework.zend.com/manual/2.0/en/modules/zend.view.helpers.html#partial-helper

干杯!

贾斯汀