【问题标题】:Zend 2 with zfctwig - view helpersZend 2 with zfctwig - 查看助手
【发布时间】:2014-04-18 22:52:08
【问题描述】:

我是 zf2 的新手,我已经很长时间没有使用 twig...我的问题是 - 如何在 zf2 中使用带有 zfctwig 模块的视图助手?

我的意思是,例如在 kohana 框架中,在视图助手类中编写一个公共方法自动允许我将此函数的返回值显示为视图变量。视图类和视图 .twig 文件的名称必须匹配。但是当我在这里尝试时它不起作用(我将视图助手放在src/modulename/view 中)。我可以做这样的事情吗?它应该这样工作吗?

另外,视图助手类应该是什么样子的?

最后,我应该在控制器中使用return new ViewModel() 将变量传递到视图文件吗?

【问题讨论】:

    标签: zend-framework2 twig


    【解决方案1】:

    我通过将以下代码添加到您的 module.сconfig.php 中解决了这个问题。

    return array(   
        'view_helpers' => array(
            'factories' => array(
                'langWidget' => function($sm){
                     return new \Application\View\Helper\LanguagesWidget($sm);
                }
            ),
        ),
    );
    

    你可以在你的模板中使用它

    <div>{{ langWidget() }}</div>
    

    这是我的视图助手的示例

    namespace Application\View\Helper;
    
    use Zend\View\Helper\AbstractHelper;
    use Zend\Di\ServiceLocatorInterface;
    use Application\Util\Util;
    use Zend\View\Model\ViewModel;
    
    /**
     * Widget with lang change elements
     *
     * 
     */
    class LanguagesWidget extends AbstractHelper
    {
        protected 
                /** @var \Zend\ServiceManager\ServiceManager */
                $serviceLocator;
    
        public function __construct($sm)
        {
            $this->serviceLocator = $sm->getServiceLocator();
            $this->viewManager = $this->serviceLocator->get('ViewManager'); 
        }
    
        public function __invoke() 
        {   
            $config = $this->serviceLocator->get('Config');
            $appLangs   = Util::getSafeArrayItemValue($config, 'languages', array());
    
            $widget = new ViewModel(array(
                    'langs' => $appLangs
                )
            );
            $widget->setTemplate('widget/langs');
    
            return $this->viewManager->getRenderer()->render($widget);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 2011-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多