3

所以我对 Symfony2 很陌生,我正在尝试camelize在树枝模板中使用过滤器。但是,当我请求该页面时,我收到一条错误消息,指出过滤器不存在:

::base.html.twig 中不存在过滤器“camelize”

这是我的模板文件中的行:

{{ '你好世界' | 骆驼化}}

该过滤器列在 Twig 的快速参考页面上

我很困惑,Symfony2 不支持所有 twig 的过滤器吗?好像少了很多,为什么呢?如果它不支持它们,那么有什么办法可以添加缺少的吗?

提前致谢!

编辑好的,所以事实证明我是智障,我需要记住检查我是否真的得到了正确的 git 项目。难怪我一头雾水。谢谢回复!

4

4 回答 4

11

Symfony 2 具有用于骆驼案例的标题过滤器

{{ entity.yourstring | title }}

驼峰式你的字符串

于 2014-11-05T16:58:46.773 回答
9

您的链接指向 GitHub 上的一个分支,即原始项目的修改副本。原始项目是https://github.com/fabpot/Twig

camelizeTwig中没有过滤器。内置过滤器在这里。您可以按照本教程编写自己的 camilize 过滤器(实际上很简单......):如何编写自定义 Twig 扩展

编辑:只是为了好玩,您可以编写如下内容:

class MyTwigExtension extends Twig_Extension
{
    public function getFilters()
    {
        return array(
            'camelize' => new Twig_Filter_Method($this, 'camelizeFilter'),
        );
    }

    public function camelizeFilter($value)
    {
        if(!is_string($value)) {
            return $value;
        }

        $chunks    = explode(' ', $value);
        $ucfirsted = array_map(function($s) { return ucfirst($s); }, $chunks);

        return implode('', $ucfirsted);
    }

    public function getName()
    {
        return 'my_twig_extension';
    }
}

请注意,这是一个快速而肮脏的过滤器!查看内置过滤器以了解最佳实践!

于 2012-09-28T14:39:36.800 回答
3

您要查找的过滤器名为“title”:http ://twig.sensiolabs.org/doc/filters/title.html

于 2014-07-04T13:19:36.793 回答
0

这是 Craft CMS 3 中默认的最佳解决方案

Craft 3 现在有一个|camel树枝过滤器

https://docs.craftcms.com/v3/dev/filters.html#camel

{{ 'foo bar'|camel }}
{# Output: fooBar #}
于 2020-01-14T23:26:54.180 回答