在Twig中解码JSON
可以在Twig解码JSON吗?谷歌搜索似乎对此没有任何帮助。在Twig中解码JSON没有意义吗?
我正在尝试访问Symfony2的实体字段类型(Entity FieldType)上的2个实体属性。
实体类中的某处:
/** * Return a JSON string representing this class.
*/
public function getJson()
{
return json_encode(get_object_vars($this));
}
并采用以下形式:
$builder->add('categories', 'entity', array (...
'property' => 'json',
...
));
之后,我希望json_decode
在Twig …
{% for category in form.categories %} {# json_decode() part is imaginary #}
{% set obj = category.vars.label|json_decode() %}
{% endfor %}
回答:
如果您伸出Twig,那很容易。
首先,创建一个包含扩展名的类:
<?phpnamespace Acme\DemoBundle\Twig\Extension;
use Symfony\Component\DependencyInjection\ContainerInterface;
use \Twig_Extension;
class VarsExtension extends Twig_Extension
{
protected $container;
public function __construct(ContainerInterface $container)
{
$this->container = $container;
}
public function getName()
{
return 'some.extension';
}
public function getFilters() {
return array(
'json_decode' => new \Twig_Filter_Method($this, 'jsonDecode'),
);
}
public function jsonDecode($str) {
return json_decode($str);
}
}
然后,在您的Services.xml文件中注册该类:
<service id="some_id" class="Acme\DemoBundle\Twig\Extension\VarsExtension"> <tag name="twig.extension" />
<argument type="service" id="service_container" />
</service>
然后,在您的Twig模板上使用它:
{% set obj = form_label(category) | json_decode %}
以上是 在Twig中解码JSON 的全部内容, 来源链接: utcz.com/qa/405413.html