2013-05-03 4 views
1

Я прочитал несколько руководств для создания спокойного web-сервиса с ZF2. Я видел, что последние изменения, как ZF2 обрабатывает успокоительные веб-службы, произошли в версии 2.0.4. Наиболее перспективно статья, чтобы меня начал было это: http://dustint.com/post/543/getting-started-with-abstractrestfulcontrollerRESTful webservice с Zend Framework 2.1. * - JsonModel не отображается

Во всяком случае, я не могу сделать это, мне кажется, что в RestController.getList() мой вернулся JsonModel не работает, как ожидалось. Из-за моего отладочного вызова я могу узнать, что будет вызван мой метод RestController.getList(). Все похожие коды в моем GitHub-хранилище здесь: https://github.com/Jochen1980/EhcServer/blob/master/module/Application/src/Application/Controller/RestController.php

class RestController extends AbstractRestfulController{ 
    public function indexAction(){ 
     Debug::dump("indexAction()"); 
     return new ViewModel(); 
    } 
    public function getList() { 
     Debug::dump("getList()"); 
     return new JsonModel(array(
      array('name' => 'test'), 
      array('name' => 'second') 
     )); 
    } 
    ... 

В настоящее время я получил сообщение об ошибке: Фатальная ошибка: Uncaught исключение 'Zend \ View \ Exception \ RuntimeException' с сообщением «Zend \ View \ видеообработки \ PhpRenderer :: render: невозможно отобразить шаблон «application/rest/get-list»; resolver не может разрешить файл 'в C: \ xampp \ htdocs \ EhcServer \ vendor \ zendframework \ zendframework \ library \ Zend \ View \ Renderer \ PhpRenderer.php в строке 499

Заранее благодарен!

ответ

5

Ваш strategies нужно быть внутри view_manager в module.config.php

т.е.., Секция вид менеджер должен выглядеть следующим образом

'view_manager' => array(
    'display_not_found_reason' => true, 
    'display_exceptions' => true, 
    'doctype' => 'HTML5', 
    'not_found_template' => 'error/404', 
    'exception_template' => 'error/index', 
    'template_map' => array(
     'layout/layout' => __DIR__ . '/../view/layout/layout.phtml', 
     'application/index/index' => __DIR__ . '/../view/application/index/index.phtml', 
     'error/404' => __DIR__ . '/../view/error/404.phtml', 
     'error/index' => __DIR__ . '/../view/error/index.phtml', 
    ), 
    'template_path_stack' => array(
     __DIR__ . '/../view', 
    ), 
    // let the view manager know which strategies to use 
    'strategies' => array(
     'ViewJsonStrategy', 
    ), 
), 
+0

Zend \ View \ Renderer \ PhpRenderer :: визуализации: Невозможно отобразить шаблон? – Crusader

0

Если вы работаете на абстрактном RestfulConroller, просто

'view_manager' => array(
    // let the view manager know which strategies to use 
    'strategies' => array(
     'ViewJsonStrategy', 
    ), 
), 

сделает правильно, потому что сам json достаточно показать в остальных методах,

$ array = array();

вернуть новый JsonModel ($ array);

Спасибо,

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