twig:创建调用函数的自定义标记

时间:2013-07-30 15:29:50

标签: php symfony twig

SETUP:

  • Twig 1.13.1
  • PHP 5.4.3

问题:

我需要帮助设置调用我已经构建的函数的自定义标记...


当前代码:

模板代码

{% set stories = get_latest_stories(2, sports) %}

{% for story in stories %}
    {{ story.headline }} <br>
{% endfor %}

控制器

$function = new Twig_SimpleFunction('getViewStories', function (section, limit) {
    return news_stories::getStories(section,limit);
});
$twig->addFunction($function);
$twig->render("storyList.html");

目标:

没有,说我想使用像

这样的自定义标签
{% get_latest_stories 2 sports %}

调用与上面相同的功能。新方式看起来更好,更容易理解

2 个答案:

答案 0 :(得分:1)

这里是如何编写twig扩展的简单示例 以下代码取自我未完成的项目

function file_import($value){
    //some code here
    return $value;
}
$app['twig']->addFunction('file_import', new Twig_Function_Function('file_import'));

使用

{{ file_import('value') }}

答案 1 :(得分:1)

为什么不在控制器中取代您的故事而不是模板?这似乎不是视图层的工作......

所以,像这样:

$twig->render("storyList.html", array(
    'stories' => news_stories::getStories($section, $limit)
));

然后,您的模板中会有stories变量。