2016-10-19 4 views
0

Я пытаюсь настроить API для использования его в SPA, но я не вижу шаблон ветки в браузере, который, как мне кажется, является ответом $ data.Symfony 3 FOSRestBundle Twig - not render

Где в конфигурации я должен указать шаблон? Где именно положить шаблоны?

AppBundle/контроллер/DefaultController.php

namespace AppBundle\Controller; 

use Symfony\Component\HttpFoundation\Request; 
use FOS\RestBundle\View\View; 

class DefaultController 
{ 
    /** 
    * @Route("/", name="homepage") 
    * 
    */ 
    public function indexAction(Request $request) 
    { 
     $data = 'string'; 
     $view = View::create(); 
     $view 
      ->setData($data) 
      ->setTemplate("default/index.html.twig"); 

     return $view; 
    } 
} 

config.yml

#Nelmio CORS 
nelmio_cors: 
    defaults: 
     allow_origin: ["%cors_allow_origin%"] 
     allow_methods: ["POST", "PUT", "GET", "DELETE", "OPTIONS"] 
     allow_headers: ["content-type", "authorization"] 
     max_age:  3600 
    paths: 
     '^/': ~ 

# FOS REST Bundle 
fos_rest: 
    body_listener: true 
    format_listener: true 
    param_fetcher_listener: true 
    view: 
     default_engine: twig 
     view_response_listener: 'force' 
     exception_wrapper_handler: null 
     formats: 
      jsonp: true 
      json: true 
      xml: false 
      rss: false 
     templating_formats: 
      html: true 
     mime_types: 
      json: ['application/json', 'application/x-json'] 
      jpg: 'image/jpeg' 
      png: 'image/png' 
     jsonp_handler: ~ 
    routing_loader: 
     default_format: json 
     include_format: false 
    format_listener: 
     rules: 
      - { path: ^/, priorities: [ json, jsonp ], fallback_format: html, prefer_extension: true } 
    exception: 
     enabled: true 
+0

Вы хотите ответ от отдыха (как правило, в JSON, XML и т. д.), или вы хотите просмотреть ветку? – LBA

+0

Я хотел бы настроить точку входа, т. Е. Mydomain.com/ defaultController - ответ Twig, а оттуда ie mydomain.com/todo SPA/React/API - ответ JSON – Dalli

+0

я не понимаю, извините – LBA

ответ

0

Если вы используете DefaultController для обслуживания HTML, вы можете попробовать следующее

class DefaultController 
{ 
    /** 
    * @Route("/", name="homepage") 
    * 
    */ 
    public function indexAction(Request $request) 
    { 
    $twigData = array('data' => 'string'); 

    return $this->render('BundleName:FolderName:index.html.twig', $twigData); 


    } 
} 

Вы можете ссылаться на переменную данных в index.html.twig с помощью {{ data }}

также другое предложение, а не с помощью комплекта для CORS просить, вы всегда можете иметь Nginx или Apache перенаправлять на ваших API маршрутов к связанная корневая папка репозитория

+0

Это не работает. Кажется, что это больше проблема с моим кодом. Я хотел бы спросить вас о структуре приложения: – Dalli

+0

Должен ли я создать структуру, как показано ниже, в папке src? - AppBundle - ApiBundle – Dalli

+0

Когда вы попробуете выше, какую ошибку вы получаете? –

Смежные вопросы