为了更好地满足我的需要,我已经覆盖了用于CRUD的Sensio Generator Bundle。
我想做的是能够遍历实体字段。 默认情况下,它在show.html.twig中完成,但不在新视图和编辑视图中完成。
当我在new.html.twig.twig中实现相同的逻辑时,虽然它适用于edit.html.twig.twig,但它不起作用。
{#app/Resources/SensioGeneratorBundle/skeleton/crud/views/new.html.twig.twig#}
{% for field, metadata in fields %}
{% if field not in 'id' %}
{{ '{{ form_row(edit_form.' ~ field ~ ')}}' }}
{% endif %}
{% endfor %}
运行生成器时,错误是:变量"字段"在" crud / views / new.html.twig.twig"中不存在在第9行
答案 0 :(得分:1)
好的,事实上它是Sensio Generator Bundle中的一个问题。 在文件中:sensio \ generator-bundle \ Sensio \ Bundle \ GeneratorBundle \ Generator \ DoctrineCrudGenerator.php,generateNewView函数缺少一个参数。它不是传递字段而不是generateShowView。
以下是比较:
protected function generateNewView($dir)
{
$this->renderFile('crud/views/new.html.twig.twig', $dir.'/new.html.twig', array(
'bundle' => $this->bundle->getName(),
'entity' => $this->entity,
'route_prefix' => $this->routePrefix,
'route_name_prefix' => $this->routeNamePrefix,
'actions' => $this->actions,
));
}
与
protected function generateShowView($dir)
{
$this->renderFile('crud/views/show.html.twig.twig', $dir.'/show.html.twig', array(
'bundle' => $this->bundle->getName(),
'entity' => $this->entity,
'fields' => $this->metadata->fieldMappings,
'actions' => $this->actions,
'route_prefix' => $this->routePrefix,
'route_name_prefix' => $this->routeNamePrefix,
));
}
我会尝试将此作为改进发布。