2015-03-08 102 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

相關問題