2015-05-27 51 views
1

我試圖從SensioGeneratorBundle覆蓋Resources/crud/actions/delete.php.twig覆蓋SensioGeneratorBundle的樹枝模板:試圖翻譯刪除按鈕

我創造了這個文件位於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無法識別:

有在「污物/ Controller.php這樣的命名空間 「SensioGenerator」 沒有註冊的路徑.twig「在第58行。

我試圖在app/config/config.yml中手動註冊命名空間:

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

但仍然無法正常工作。理念?

+0

我看到你試圖重寫'block'表單,然後從原來的'delete.php.twig'擴展。我試着複製你的問題,並且遇到了同樣的問題。有點奇怪......我想最快/最簡單,但不一定是最純粹的解決方案是重寫整個文件,更改要更改的部分,並避免使用'extends'指令。這絕對適合我。 –

回答

1

爲什麼你沒有像文檔那樣做? 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 %} 
+0

這工作完美。 –

+0

謝謝,它的作品! – Francis

0

如果您使用的是基於上或者是一個項目類似,到Symfony Standard Edition,那麼SensioGeneratorBundle只加載的dev環境。

這是在composer.jsonAppKernel中配置的。

因此,請確保您的執行正在使用dev環境或更改這些配置,以便始終加載該包。