twig内で関数から受け取った値がjsonデータだったのでそのまま出力できないので対応策を調べた。
出力するためにはdecodeしてあげないといけない。
そのために独自関数を実装した。
jsonDecodeTwigExtension.php
namespace Customize\Twig\Extension;
use Twig\Extension\AbstractExtension;
class jsonDecodeTwigExtension extends AbstractExtension
{
public function getFilters()
{
return [
new \Twig_Filter('json_decode', [$this, 'jsonDecodeFilter']),
];
}
/**
* @param null $json
*
* @return mixed|null
*/
public function jsonDecodeFilter($json = null)
{
if (! $json) {
return null;
}
return json_decode($json, true);
}
}
以下のようなjsonがあるとする。
price.json
{
"min": 5500,
"max": 121000,
}
こうやって出力する。
price.twig
{% set price = price | json_decode %}
{{ prices.min }}