2016-07-25 30 views
2

所以,我有以下文件夾結構:無法加載的樹枝模板(Symfony的2.8.8)

enter image description here

按照Symfony的手冊(click here),我應該能夠加載我的樹枝模板,但Symfony的找不到。

enter image description here

任何想法我可能做錯了什麼?謝謝。


代碼我試過我的應用程序的

return $this->render(
     "AppBundle:DisplayForm.html.twig" 
     , array(
      "form" => $form->createView() 
    ); 

    return $this->render(
     "DisplayForm.html.twig" 
     , array(
      "form" => $form->createView() 
     ) 
    ); 

內容/ AppKernel.php

<?php 

use Symfony\Component\HttpKernel\Kernel; 
use Symfony\Component\Config\Loader\LoaderInterface; 

class AppKernel extends Kernel 
{ 
    public function registerBundles() 
    { 
     $bundles = array(
      new Symfony\Bundle\FrameworkBundle\FrameworkBundle(), 
      new Symfony\Bundle\SecurityBundle\SecurityBundle(), 
      new Symfony\Bundle\TwigBundle\TwigBundle(), 
      new Symfony\Bundle\MonologBundle\MonologBundle(), 
      new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(), 
      new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(), 
      new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(), 
      new AppBundle\AppBundle(), 

      new Symfony\Bundle\AsseticBundle\AsseticBundle(), 
     ); 

     if (in_array($this->getEnvironment(), array('dev', 'test'), true)) { 
      $bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle(); 
      $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle(); 
      $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle(); 
      $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle(); 
     } 

     return $bundles; 
    } 

    public function registerContainerConfiguration(LoaderInterface $loader) 
    { 
     $loader->load($this->getRootDir().'/config/config_'.$this->getEnvironment().'.yml'); 
    } 
} 

應用內容/配置/ config.yml

imports: 
    - { resource: parameters.yml } 
    - { resource: security.yml } 
    - { resource: services.yml } 

# Put parameters here that don't need to change on each machine where the app is deployed 
# http://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration 
parameters: 
    locale: en 

framework: 
    #esi:    ~ 
    #translator:  { fallbacks: ["%locale%"] } 
    secret:   "%secret%" 
    router: 
     resource: "%kernel.root_dir%/config/routing.yml" 
     strict_requirements: ~ 
    form:   ~ 
    csrf_protection: ~ 
    validation:  { enable_annotations: true } 
    #serializer:  { enable_annotations: true } 
    templating: 
     engines: ['twig'] 
    default_locale: "%locale%" 
    trusted_hosts: ~ 
    trusted_proxies: ~ 
    session: 
     # handler_id set to null will use default session handler from php.ini 
     handler_id: ~ 
    fragments:  ~ 
    http_method_override: true 

# Twig Configuration 
twig: 
    debug:   "%kernel.debug%" 
    strict_variables: "%kernel.debug%" 

# Doctrine Configuration 
doctrine: 
    dbal: 
     driver: "%database_driver%" 
     host:  "%database_host%" 
     port:  "%database_port%" 
     dbname: "%database_name%" 
     user:  "%database_user%" 
     password: "%database_password%" 
     charset: UTF8 
     # if using pdo_sqlite as your database driver: 
     # 1. add the path in parameters.yml 
     #  e.g. database_path: "%kernel.root_dir%/data/data.db3" 
     # 2. Uncomment database_path in parameters.yml.dist 
     # 3. Uncomment next line: 
     #  path:  "%database_path%" 

    orm: 
     auto_generate_proxy_classes: "%kernel.debug%" 
     naming_strategy: doctrine.orm.naming_strategy.underscore 
     auto_mapping: true 

# Swiftmailer Configuration 
swiftmailer: 
    transport: "%mailer_transport%" 
    host:  "%mailer_host%" 
    username: "%mailer_user%" 
    password: "%mailer_password%" 
    spool:  { type: memory } 

assetic: 
    debug:   '%kernel.debug%' 
    use_controller: '%kernel.debug%' 
    filters: 
     cssrewrite: ~ 

回答

6

因爲你存儲的包裏面的模板,你還必須引用視圖中的目錄 - 在這種情況下,「空」目錄。

AppBundle::DisplayForm.html.twig 

注意該目錄的::

如果你感動了整個的appbundle /資源/視圖/目錄下的應用程序/資源/視圖/那麼你就可以多引用它們作爲一個普通的子目錄:

引用模板存儲在:

app/Resources/views/   | AcmeDemoBundle/Resources/views 
----------------------------- | ------------------------------- 
index.html.twig    | AcmeDemoBundle::index.html.twig 
Default/subdir/index.html.twig | AcmeDemoBundle:Default:subdir/index.html.twig 
Default/subdir/index.html.twig | AcmeDemoBundle:Default/subdir:index.html.twig 
0

也許你已經忘記了@符號:

return $this->render(
    "@AppBundle/DisplayForm.html.twig", [ 
     "form" => $form->createView(
    ] 
); 
+0

我從Symfony得到一個不同的錯誤== >>格式錯誤的名稱空間模板名稱「@AppBundle:DisplayForm.html.twig」(期待「@ namespace/template_name」)。 – mrjayviper

+0

我已更新我的答案,請嘗試讓我知道它是否有效 –

+0

新錯誤:名稱空間「AppBundle」沒有註冊路徑。當我使用「symfony new my-project lts」創建一個新項目時,AppBundle與Symfony一起提供。 – mrjayviper