但是在Twig中可以这样写: 代码如下: {{ var }} {{ var|escape }} {{ var|e }} {# shortcut to escape a variable #} 遍历数组: 代码如下: {% for user in users %} * {{ user.name }} {% else %} No user has been found. {% endfor %}
error($model,'password'); ?> endWidget(); ?> 但是这样的语法是没法在twig中表达的,所以想去扩展下Twig的功能,让他能够支持我们自定义的widget标签,然后自动解析成我们需要的代码。 总共需要两个类:TokenParser和Node,下面直接上代码: 代码如下: /* * This file is an extension of Twig. * * (c) 2010 lfyzjck */
/** * parser widget tag in Yii framework * * {% beginwidget 'CActiveForm' as form %} * content of form * {% endwidget %} * */ class Yii_WidgetBlock_TokenParser extends Twig_TokenParser { /** * Parses a token and returns a node. * * @param Twig_Token $token A Twig_Token instance * * @return Twig_NodeInterface A Twig_NodeInterface instance */ public function parse(Twig_Token $token) { $lineno = $token->getLine(); $stream = $this->parser->getStream();