2016-11-26 220 views
0

我捆FOSRestBundle,JMSSerializerBundle和NelmioApiDocBundle的整合,我修改了文件config.yml和routing.yml中,但我覺得這個問題沒有擴展能夠加載

代碼config.yml:

imports: 
      - { resource: parameters.yml } 
      - { resource: security.yml } 
      - { resource: services.yml } 
      - { resource: "@UserBundle/Resources/config/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: fr 

     framework: 
      #esi:    ~ 
      translator:  ~ 
      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: pdo_mysql 
       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 } 

     fos_user: 
      db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel' 
      firewall_name: main 
      user_class: test\UserBundle\Entity\User 

     fos_rest: 
      view: 
       view_response_listener: 'force' 
       formats: 
        json: true 
      format_listener: 
       rules: 
        - { path: '^/api', priorities: ['json'], fallback_format: json, prefer_extension: true } 
        - { path: '^/', stop: true } 

     nelmio_cors: 
      paths: 
       '^/api/': 
        allow_credentials: true 
        allow_origin: ['*'] 
        allow_headers: ['*'] 
        allow_methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE'] 
        max_age: 3600 

代碼的routing.yml:

user: 
     resource: "@UserBundle/Resources/config/routing.yml" 
     prefix: /

    med: 
     resource: "@MedBundle/Resources/config/routing.yml" 
     prefix: /

    app: 
     resource: "@AppBundle/Controller/" 
     type:  annotation 

    fos_user: 
     resource: "@FOSUserBundle/Resources/config/routing/all.xml" 

    NelmioApiDocBundle: 
     resource: "@NelmioApiDocBundle/Resources/config/routing.yml" 
     prefix: /api/doc 

    app_api: 
     resource: "@MedBundle/Resources/config/routing_rest.yml" 
     type:  rest 
     prefix: /api 

代碼routing_rest.yml:

api_app: 
resource: MedBundle\Controller\Api\AppController 
type:  rest 

代碼AppController.php:

<?php 

    namespace test\MedBundle\Controller\Api; 

    use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 
    use Symfony\Component\HttpFoundation\Request; 
    use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
    use FOS\RestBundle\Controller\Annotations\RouteResource; 



    /** 
    * @RouteResource("User") 
    */ 
    Class AppController extends Controller { 

     public function getAction() { 
      $em = $this->getDoctrine()->getManager(); 
      $test = $em->getRepository('MedBundle:Apps')->findAll(); 
      return array("test" => $test); 
     } 


     public function postAction(Request $request){ 

      return $request->request->all(); 

     } 

    } 

現在我發現這個問題時,它可以測試API

enter image description here

什麼解決的辦法,並感謝您

+0

可能的重複[沒有擴展能夠加載配置「facebookbundle」symfony2](http://stackoverflow.com/questions/13741632/there-is-no-extension-able-to-load-the-configuration-for-facebookbundle-symfon) –

+1

嘗試檢查[此文檔關於如何使用資產](http://symfony.com/doc/current/assetic/asset_management.html)。檢查作曲家是否對齊,並且軟件包是否加載到appkernel文件中 – Matteo

回答

0

你不在你的config.yml文件中有任何資源配置。我假設你沒有在你的應用上安裝AsseticBundle。從Symfony 2.8開始,Assetic不再被包含在Symfony標準版中。您需要自行安裝:

首先需要捆綁與作曲家:

composer require symfony/assetic-bundle 

啓用在AppKernel.php的包文件

class AppKernel extends Kernel 
{ 
    // ... 

    public function registerBundles() 
    { 
     $bundles = array(
      // ... 
      new Symfony\Bundle\AsseticBundle\AsseticBundle(), 
     ); 

     // ... 
    } 
} 

以下最低配置添加到您的配置。 yml文件啓用Assetic

# app/config/config.yml 
assetic: 
    debug:   '%kernel.debug%' 
    use_controller: '%kernel.debug%' 
    filters: 
     cssrewrite: ~ 
相關問題