2012-05-13 17 views
11

ile çalışma açılamıyor Symfony2 ve FOSRestBundle'ı bir REST çerçevesiyle birlikte kullanmaya çalışıyorum ve sefil bir şekilde başarısızım.FOSRestBundle

Aşağıdaki yapmış:

namespace Rest\WebServiceBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use FOS\RestBundle\View\View; 


class DefaultController extends Controller 
{ 

    public function indexAction($name) 
    { 


    $view = View::create() 
      ->setStatusCode(200) 
      ->setData($name); 
     return $this->get('fos_rest.view_handler')->handle($view); 


    } 
} 
: Benim Kontrolörü olarak benim uygulamalarda

[FOSRest] 
    git=git://github.com/FriendsOfSymfony/FOSRest.git 
    target=fos/FOS/Rest 

[FOSRestBundle] 
    git=git://github.com/FriendsOfSymfony/FOSRestBundle.git 
    target=bundles/FOS/RestBundle 

[JMSSerializerBundle] 
    git=git://github.com/schmittjoh/JMSSerializerBundle.git 
    target=bundles/JMS/SerializerBundle 

/config.yml

fos_rest: 
    view: 
     formats: 
      rss: true 
      xml: false 
     templating_formats: 
      html: true 
     force_redirects: 
      html: true 
     failed_validation: HTTP_BAD_REQUEST 
     default_engine: twig 


sensio_framework_extra: 
    view: 
     annotations: false 

: my deps dosyasında

URL'ye gittiğimde: http://local.symfony.com/web/app_dev.php/hello/test

alıyorum:

Unable to find template "". 
500 Internal Server Error - InvalidArgumentException 
2 linked Exceptions: Twig_Error_Loader » Twig_Error_Loader 

dokümantasyon bana kafa karıştırıcı görünüyor ve devam kuramıyorum. Tek istediğim, denetleyiciye bir dizi veri iletebilmek ve bir JSON biçimini geri alabilmektir. Birisi yardım edebilir mi? config.yml ait formats bölümünde

+4

Ayrıca, bu gidiş için sorun yaşıyorum. Göreceli olarak basit bir görev gibi görünen şey için oldukça kafa karıştırıcı görünüyor. Onunla hiç şansın oldu mu? – greg

cevap

17

diğer biçimleri ve rotada json olarak ayarlanan varsayılan _format değer json biçimini etkinleştirmek ve devre dışı bırakmak zorunda. örneğin

# app/config/config.yml 
fos_rest: 
    view: 
     formats: 
      json: true 
      rss: false # removing them will also work 
      xml: false 
#....... 

#bundle/routing.yml 
route_name: 
    pattern: /route 
    defaults: { _controller: Bundle:Controller:Method, _format:json } 

Veya, denetleyici size

$view->setFormat('json'); 

Ayrıca belgelerinde verilen örnek bağlantılar ödeme yapabilirsiniz.

+3

Benim için de çalışıyordu, ama sadece veri olarak bir dizi kullandığımda, ne bir nesneyi çıkarmak istersem? – alex88

+1

Daha yeni sürümlerle çalışmaz. Daha yeni bir cevap: http://stackoverflow.com/a/18035437/842697. Yorumlar çok müdahaleci. –