我有一个像“((2*160)+53)1.00000”这样的字符串,我在Twig template中的数据中接收到它。如何使计算工作并返回计算出的数字,而不是数学中的普通字符串?因此,期望输出将只是一个数字作为数学结果(这里是373)。Add:实际上接收到的字符串是“((V160)+53)*1.00000”,其中V被替换为某个数量。
4dc9hkyq1#
您可以使用TwigExtension轻松创建自定义Twig函数(请参阅https://symfony.com/doc/5.2/templating/twig_extension.html#sample-the-extension-class)。比如:
<?php namespace App\Twig; use Twig\Extension\AbstractExtension; use Twig\TwigFunction; class AppExtension extends AbstractExtension { public function getFunctions() { return [ new TwigFunction('calculate', [$this, 'calculateExpression']), ]; } public function calculateExpression(string $input, array $extraValues = []) { foreach ($extraValues as $key => $value) { $input = str_replace($key, $value, $extraValues); } return eval("return $input"); } }
或者一种和使用像这样在树枝模板:
{{ calculate('((V*160)+53)*1.00000', {V: 53}) }}
1条答案
按热度按时间4dc9hkyq1#
您可以使用TwigExtension轻松创建自定义Twig函数(请参阅https://symfony.com/doc/5.2/templating/twig_extension.html#sample-the-extension-class)。
比如:
或者一种和使用像这样在树枝模板: