2013-08-02 40 views
10

我得到異常:FOS休息束:無法找到模板

無法找到模板「」

其他類似的問題並沒有幫助;和古怪足夠它是工作的罰款,然後突然開始給我這個例外。

作曲:

"friendsofsymfony/rest-bundle": "0.13.*@dev", 
    "jms/serializer-bundle": "0.12.*@dev", 

我下面Automatic route generation: single RESTful controller (for simple resources)

配置:

fos_rest: 
    format_listener: true 
    routing_loader: 
     default_format: json 
    view: 
     view_response_listener: 'force' 
    serializer: 
     serialize_null: true 

sensio_framework_extra: 
    view: { annotations: false } 
    router: { annotations: true } 

路由:

sectors: 
    type: rest 
    prefix: /{v} 
    resource: JJ\MainBundle\Controller\SectorsController 

控制器:@View

/** 
* @RouteResource("Sector") 
*/ 
class SectorsController extends Controller 
... 
    public function cgetAction() 
    { 
     return $this->getSectorIndustryRepo()->findAll(); 
    } 
+0

檢查我的答案在這裏:http://stackoverflow.com/a/32779936/828366 –

回答

10

我設法明確設置聽者假來解決這個問題:

fos_rest: 
    format_listener: false 

編輯

這也適用於:

fos_rest: 
    format_listener: 
     prefer_extension: false 
     default_priorities: 
      - json 
+0

我不認爲這是正確的解決方案。您只關閉了整個內容協商功能。 –

+0

@WilliamDURAND並編輯罷工你的想象? – Tjorriemorrie

+1

這不是我在這裏告訴你的:https://github.com/FriendsOfSymfony/FOSRestBundle/issues/518#issuecomment-22162359。但是,這是一個配置問題。 問題是,無論是使用擴展名作爲設置'format'的首選方式,這種方式不好,但是...無論如何,只需將prefer_extension參數設置爲true,或者使用Accept標頭,配置優先級(內容協商功能)。 –

3

註釋你的控制器的行動來解決這個問題。

use FOS\RestBundle\View\View; 

看看文檔chapter View Response listener


如果你不想詮釋每一個動作 - 你可以設置@View註釋使用my pull request here一個完整的類。

添加到您的composer.json使用PR。

"require": { 
    "friendsofsymfony/rest-bundle": "dev-dev-view-addition as 0.12.0", 

// ... 

"repositories": [ 
    { 
     "type": "vcs", 
     "url": "https://github.com/nifr/FOSRestBundle" 
    }, 
+0

無法找到模板「MainBundle:行業:cget.html。枝條」。我已經在使用額外的包;配置更新 – Tjorriemorrie

+0

我認爲路由器不拿起格式是JSON – Tjorriemorrie

1

(僅供參考)如果One正在使用其他客戶端進行測試或手動確認在您的請求中設置標頭: 接受:application/json

因爲fosRestBundle會嘗試從請求中的標頭中確定正確的響應類型。

-1

對於FOSRestBundle 2.0版的配置應該是

fos_rest: 
    format_listener: 
     rules: 
      prefer_extension: false 
      fallback_format: json