覆盖 SensioGeneratorBundle 的树枝模板:尝试翻译删除按钮

Overriding SensioGeneratorBundle's twig template: trying to translate the delete button

我正在尝试从 SensioGeneratorBundle 覆盖 Resources/crud/actions/delete.php.twig

我在 app/Resources/SensioGeneratorBundle/skeleton/crud/actions/delete.php.twig:

创建了这个文件
{% extends "@SensioGenerator/Resources/crud/actions/delete.php.twig" %}

{% block form %}
    /**
     * Creates a form to delete a {{ entity }} entity by id.
     *
     * @param mixed $id The entity id
     *
     * @return \Symfony\Component\Form\Form The form
     */
    private function createDeleteForm($id)
    {
        return $this->createFormBuilder()
            ->setAction($this->generateUrl('{{ route_name_prefix }}_delete', array('id' => $id)))
            ->setMethod('DELETE')
            ->add('submit', 'submit', array('label' => 'Supprimer'))
            ->getForm()
        ;
    }
{% endblock form %}

问题是 @SensioGenerator 无法识别:

There are no registered paths for namespace "SensioGenerator" in "crud/controller.php.twig" at line 58.

我尝试在app/config/config.yml中手动注册命名空间:

twig:
    [...]
    paths:
        "%kernel.root_dir%/../vendor/sensio/generator-bundle/Sensio/Bundle/GeneratorBundle/": SensioGenerator

但还是不行。想法?

为什么你不像在文档中那样做? SensioGeneratorDocs

{% extends "skeleton/crud/actions/delete.php.twig" %}

{% block form %}
    /**
    * Creates a form to delete a {{ entity }} entity by id.
    *
    * @param mixed $id The entity id
    *
    * @return \Symfony\Component\Form\Form The form
    */
    private function createDeleteForm($id)
    {
    return $this->createFormBuilder()
    ->setAction($this->generateUrl('{{ route_name_prefix }}_delete', array('id' => $id)))
    ->add('submit', 'submit', array('label' => 'Supprimer'))
    ->getForm()
    ;
    }
{% endblock form %}

如果您使用的项目基于或类似于 Symfony Standard Edition,则仅为 dev 环境加载 SensioGeneratorBundle。

这在composer.json and the AppKernel.

中都配置了

因此,确保您的执行使用 dev 环境或更改这些配置,以便始终加载包。