所以我对Symfony2很新,我试图在树枝模板中使用camelize
过滤器。但是,当我请求页面时,我收到错误消息,指出过滤器不存在:
过滤器“camelize”在:: base.html.twig
中不存在
以下是我的模板文件中的行:
{{'hello world'| camelize}}
过滤器列在Twig的quick reference page上。
我很困惑,Symfony2不支持所有twig的过滤器吗?似乎有不少遗失,为什么?如果它不支持它们,那么有什么方法可以添加缺少的那些吗?
提前致谢!
编辑好的,所以事实证明我迟钝了,我需要记得检查我是否真的得到了正确的git项目。难怪我很困惑。谢谢回复!
答案 0 :(得分:10)
Symfony 2具有使用驼峰的标题过滤器
{{ entity.yourstring | title }}
以骆驼为例你的字符串
答案 1 :(得分:8)
您的链接指向GitHub上的 fork ,这意味着原始项目的修改后的副本。原始项目是https://github.com/fabpot/Twig。
Twig中没有camelize
过滤器。内置过滤器为here。您可以按照本教程编写自己的camilize过滤器(实际上很简单......)How to write a custom Twig Extension。
编辑:只是为了好玩,你可以写一些类似的东西:
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';
}
}
请注意,这是一个快速而脏的过滤器!看看内置的过滤器,了解最佳实践!
答案 2 :(得分:3)
您正在寻找的过滤器名为" title":http://twig.sensiolabs.org/doc/filters/title.html
答案 3 :(得分:0)
默认情况下,这是Craft CMS 3中的最佳解决方案
第3步现在具有用于树枝的|camel
过滤器
https://docs.craftcms.com/v3/dev/filters.html#camel
{{ 'foo bar'|camel }}
{# Output: fooBar #}