@kenya Вы не сможете вставить напрямую PHP код в twig шаблон, но Вы можете создать фильтр или функцию на PHP и затем использовать ее в Twig, например:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
namespace App\Twig; use Twig\Extension\AbstractExtension; use Twig\TwigFilter; class AppExtension extends AbstractExtension { public function getFilters() { return [ new TwigFilter('price', [$this, 'formatPrice']), ]; } public function formatPrice(float $number, int $decimals = 0, string $decPoint = '.', string $thousandsSep = ','): string { $price = number_format($number, $decimals, $decPoint, $thousandsSep); $price = '$'.$price; return $price; } } |
И затем в Twig можно использовать этот фильтр:
1
|
{{ product.price|price(2, ',', '.') }} |
Более подробно можно также найти в документации https://symfony.com/doc/current/templating/twig_extension.html
@kenya
Для вставки PHP кода в Twig необходимо использовать специальный тег {{ }}
, после которого следует вставить переменную с PHP кодом. Например:
1
|
{{ <?= $variable ?> }} |
В данном случае переменная $variable
будет содержать PHP код, который будет выполнен при рендеринге шаблона. Обратите внимание, что символы <?=
используются для короткой записи вывода переменной, которая является результатом выполнения PHP кода. Если необходимо выполнить произвольный PHP код без вывода результатов, также можно использовать тег {{ }}
и обычный PHP код внутри него. Например:
1 2 3 4 5 |
{{ $var1 = 1; $var2 = 2; echo $var1 + $var2; }} |
В данном случае будет выполнен PHP код, который присваивает переменным $var1
и $var2
значения 1 и 2 соответственно, а затем выводит их сумму.