2016-11-14 7 views
0

Я перешел из ZF2 в ZF3. Теперь у меня проблема. Мой взгляд сценарий находится в правильном месте, конфигурация кажется хорошо, но я получаю следующее сообщение об ошибке:Zend Framework, PhpRenderer, неспособный отобразить шаблон, добавляет контроллеры в имя шаблона

Zend\View\Renderer\PhpRenderer::render: Unable to render template "parties/controllers/write-party/add"; resolver could not resolve to a file

который является довольно распространенной ошибкой решить, но проблема в том, что по какой-то причине, я получаю controllers папку в шаблоне. Путь шаблона должен быть parties/write-party/add.

module.config.php

return [ 
    'controllers' => [ 
     'factories' => [ 
      WritePartyController::class => WritePartyControllerFactory::class, 
     ], 
    ], 
    'router' => [ 
     'routes' => [ 
      'parties' => [ 
       'type' => Literal::class, 
       'options' => [ 
        'route' => '/parties', 
        'defaults' => [ 
         '__NAMESPACE__' => 'Parties\Controllers', 
         'controller' => 'Index', 
         'action'  => 'index', 
        ], 
       ], 
       'may_terminate' => true, 
       'child_routes' => [ 
        'add' => [ 
         'type' => Segment::class, 
         'options' => [ 
          'route' => '/add', 
          'defaults' => [ 
           'controller' => WritePartyController::class, 
           'action' => 'add', 
          ], 
         ], 
        ], 
    //... 
    'view_manager' => [ 
     'template_path_stack' => [ 
      'parties' => __DIR__ . '/../view', 
     ], 
     'strategies' => [ 
      'ViewJsonStrategy', 
     ], 
    ], 
], 

Как получить правильный путь к моей точки зрения сценария, который parties/write-party/add?

ответ

0

Вопрос оказался более сложным, чем я думал. Внутренне ZF3 предполагает, что папка с контроллерами модуля имеет имя Controller (единственное число). Если это не так, это позволяет передать пространство имен YourModule/Controllers/ControllersName/ на путь your-module/controllers/controllers-name/, и это то, что я видел. Все это происходит в методе InjectTemplateListenermapController. Поэтому я предполагаю, что это ошибка, потому что все работает на ZF2 без проблем.