2016-10-19 3 views
0

私はSPAで使用するためにAPIを設定しようとしていますが、私が得たと思う唯一のものは$データ応答です。Symfony 3 FOSRestBundle Twig - レンダリングしない

ここで、設定でテンプレートを指定する必要がありますか? テンプレートはどこに貼り付けますか?

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レスポンス、そこからmydomain.com/todo SPA/React/API - JSONレスポンス – Dalli

+0

申し訳ありません。 – LBA

答えて

0

あなたがHTMLを提供するためDefaultControllerを使用している場合は、次の

を試すことができます
class DefaultController 
{ 
    /** 
    * @Route("/", name="homepage") 
    * 
    */ 
    public function indexAction(Request $request) 
    { 
    $twigData = array('data' => 'string'); 

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


    } 
} 

あなたはその後、また別の提案ではなく、CORSのためのバンドルを使用してあなたはいつもnginxのか、ApacheがにあなたのAPIのルートにリダイレクトしていることができます要求{{ data }}

を使用してindex.html.twigにデータ変数を参照することができます関連するリポジトリのルートフォルダ

+0

それは私のコードでより多くの問題のように見えるbuを動作しません。私はアプリの構造についてあなたに尋ねたいと思います: – Dalli

+0

srcフォルダに以下のような構造を作りますか? - AppBundle - ApiBundle – Dalli

+0

あなたは何を得ているのですか? –

関連する問題