symfony细枝渲染动态细枝代码
在我的symfony2行动中,我有:symfony细枝渲染动态细枝代码,symfony,twig,Symfony,Twig,在我的symfony2行动中,我有: $twigCode = '<li>{{ data.value }}</li>'; //In database $datas = array(array( 'value' => 'line 1'), array( 'value' => 'line 2')); return $this->render( '...List.html.twig', array( 'twigCode' =&g
$twigCode = '<li>{{ data.value }}</li>'; //In database
$datas = array(array( 'value' => 'line 1'), array( 'value' => 'line 2'));
return $this->render(
'...List.html.twig',
array(
'twigCode' => $twigCode,
'datas' => $datas
)
);
$twigCode='{{data.value}} //在数据库中
$datas=array(数组('value'=>'line 1')、数组('value'=>'line 2');
返回$this->render(
“…List.html.twig”,
排列(
“twigCode”=>$twigCode,
'datas'=>$datas
)
);
在我的小树枝模板中,我需要如下内容:
<ul>
{% for data in data %}
{{ render({{ twigCode }}, {data: data}) }}
{% endfor %}
</ul>
{%用于数据%中的数据}
{{render({{twigCode}},{data:data}}}
{%endfor%}
预期:
<ul>
<li>line 1</li>
<li>line 2</li>
</ul>
- 第1行
- 第2行
您必须使用细枝核心,或者可以自定义视图渲染
检查下面的代码
$loader = new Twig_Loader_Array(array(
'index.html' => 'Hello {{ name }}!',
));
$twig = new Twig_Environment($loader);
echo $twig->render('index.html', array('name' => 'Fabien'));
检查此处以获取文档:您可以在控制器中渲染和连接细枝片段:
$templating = $this->container->get('templating');
$someTwig = '';
foreach ($datas as $data)
{
$someTwig .= $templating->render($twigCode, $data);
}
return $this->render('...List.html.twig', array('someTwig' => $someTwig));
然后在树枝上:
<ul>
{{ someTwig | raw }}
</ul>
<ul>
{% for data in data %}
{{ render(twigCode, data) | raw }}
{% endfor %}
</ul>
然后在树枝上:
<ul>
{{ someTwig | raw }}
</ul>
<ul>
{% for data in data %}
{{ render(twigCode, data) | raw }}
{% endfor %}
</ul>
{%用于数据%中的数据}
{{render(twigCode,data)| raw}
{%endfor%}
注意-可能“render”是twig的保留字,因此自定义twig函数可能需要不同的名称。我不明白您想实现什么,但您可以直接在模板中编写twig代码,而不是从控制器传递。我的twig代码在数据库中,由userOk编写,因此无法在twig模板中执行此操作?twig模板在执行时编译为php可执行文件,因此您不能以这种方式传递twig代码。因为twig引擎将其假定为文本。实际上,只要插入的片段已经由twig模板引擎“呈现”,就有可能(在这种情况下,它不需要进一步遵从)并通过“原始”过滤器进行传递,这样它就不会被编码。一种更简单的方法(来自此答案的代码)是使用模板服务。