2013-08-02 35 views
10

tôi nhận được ngoại lệ:FOS bó phần còn lại: không thể tìm thấy mẫu

Không tìm thấy mẫu ""

Những câu hỏi tương tự khác không giúp; và đủ kỳ lạ nó đã hoạt động tốt và sau đó đột nhiên bắt đầu cho tôi ngoại lệ này.

soạn:

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

Tôi đang theo Automatic route generation: single RESTful controller (for simple resources)

config:

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 } 

định tuyến:

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

điều khiển:

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

Kiểm tra câu trả lời của tôi ở đây: http://stackoverflow.com/a/32779936/828366 –

Trả lời

10

tôi quản lý để giải quyết vấn đề này bằng cách thiết lập người nghe một cách rõ ràng là false:

fos_rest: 
    format_listener: false 

EDIT

này cũng hoạt động:

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

Tôi không nghĩ rằng đó là giải pháp đúng. Bạn vừa tắt toàn bộ tính năng Thương lượng nội dung. –

+0

@WilliamDURAND có thực hiện chỉnh sửa cảnh cáo ưa thích của bạn không? – Tjorriemorrie

+1

Đó không phải là những gì tôi đã nói với bạn ở đây: https://github.com/FriendsOfSymfony/FOSRestBundle/issues/518#issuecomment-22162359. Nhưng vâng, đó là vấn đề về cấu hình. Thing là, hoặc là bạn sử dụng phần mở rộng như cách ưa thích để đặt 'định dạng' là xấu nhưng ... anyway, chỉ cần chuyển tham số' prefer_extension' thành 'true', hoặc bạn sử dụng tiêu đề' Accept' và bạn có để định cấu hình mức độ ưu tiên (tính năng Thương lượng nội dung). –

3

Chú thích hành động điều khiển của bạn với @View để giải quyết vấn đề này.

use FOS\RestBundle\View\View; 

Hãy xem tài liệu chapter View Response listener.


Nếu bạn không muốn chú thích mọi hành động - bạn có thể đặt chú thích @View cho một lớp hoàn chỉnh bằng cách sử dụng my pull request here.

Thêm mục này vào composer.json của bạn để sử dụng PR.

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

// ... 

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

Không tìm thấy mẫu "MainBundle: Ngành: cget.html. ". Tôi đã sử dụng gói thêm; config cập nhật – Tjorriemorrie

+0

Tôi nghĩ rằng các bộ định tuyến không nhận được rằng định dạng là json – Tjorriemorrie

1

(Để tham khảo) Nếu One đang thử nghiệm với một khách hàng còn lại hoặc theo cách thủ công, hãy chắc chắn để đặt tiêu đề trong yêu cầu của bạn: Chấp nhận: application/json

Bởi vì fosRestBundle cố gắng xác định loại phản hồi thích hợp từ các tiêu đề trong yêu cầu.

-1

Đối FOSRestBundle phiên bản 2.0 cấu hình nên

fos_rest: 
    format_listener: 
     rules: 
      prefer_extension: false 
      fallback_format: json 
Các vấn đề liên quan