有没有办法在 Twig 中添加一个空格,其中单词有驼峰字母。
例如:helloWorldHowAreYouDoing 将是hello World How Are You Doing
谢谢!
从 php 5.5 版开始,需要preg_replace_callback函数,因为现在不推荐使用“/e”修饰符。
创建一个扩展方法并从树枝页面调用它作为过滤器。
扩展类:
<?php
// src/AppBundle/Twig/AppExtension.php
namespace AppBundle\Twig;
class yourExtension extends \Twig_Extension
{
public function getFilters()
{
return array(
new \Twig_SimpleFilter('camelToSpace', array($this, 'convertCamelCaseToHaveSpacesFilter')),
);
}
/*
* Converts camel case string to have spaces
*/
public function convertCamelCaseToHaveSpacesFilter($camelCaseString)
{
$pattern = '/(([A-Z]{1}))/';
return preg_replace_callback(
$pattern,
function ($matches) {return " " .$matches[0];},
$camelCaseString
);
}
public function getName()
{
return 'app_extension';
}
}
Run Code Online (Sandbox Code Playgroud)
如果您将驼峰式大小写字符串传递给函数 convertCamelCaseToHaveSpacesFilter 将完成这项工作。
在 Twig 页面中:
<body>
{% set yourString = 'helloWorldHowAreYouDoing' %}
{{ yourString|camelToSpace }}
</body>
Run Code Online (Sandbox Code Playgroud)
这也适用于 Pascal 套管,但之后可能需要修剪字符串。
如果未启用自动装配,请记住注册您的扩展类。在 services.yml 中:
services:
app.twig_extension:
class: RouteToExtensionClass\yourExtension
public: false
tags:
- { name: twig.extension }
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2600 次 |
最近记录: |