2015-03-08 104 views
0

有没有什么办法在Phalcon中创建自定义标签的视图,所以我可以传递参数来渲染?Phalcon自定义标签模板

class MenuModule extends \Phalcon\Tag { 
    public static function initialize($param) { 
     return $param; 
    } 
} 

在我看来,我可以叫

echo MenuModule::initialize('Home Page'); 

我想要做的就是传递数组,如:

$menu = array('Home','About','Contact'); 
echo MenuModule::initialize($menu); 

然后在标签助手调用子视图渲染数组而不是像这样的东西:

class MenuModule extends \Phalcon\Tag { 
    public static function initialize($param) { 
     $menu = '<ul>'; 
     foreach($param as $p) { 
      $menu .= '<li>' . $p . '</li>'; 
     } 
     $menu .= '</ul>'; 
     return $menu; 
    } 
} 

这并不复杂,但我想使用视图而不是在PHP内部生成HTML,因为HTML文件较大。

我该怎么做?

回答

0

我在Phalcon官方文档中发现了解决方案Tag ServiceCreating your own helpers

<?php 
use Phalcon\Tag; 

class MenuModule extends Tag { 
    static public function initialize($param) { 
     $menu = '<ul>'; 
     foreach($param as $p) { 
      $menu .= '<li>' . $p . '</li>'; 
     } 
     $menu .= '</ul>'; 

     return $menu; 
    } 
} 

然后更改服务“标签”的定义:

$di['tag'] = function() { 
    return new MenuModule(); 
}; 

然后在伏访问它想:

{{ MenuModule::initialize($param) }} 
+0

它在哪里“,然后将服务的定义'标签'” ? – Siteogra 2016-08-30 21:47:10

相关问题