2015-12-25 2 views
0

Я создаю контроллер и представление, но я получаю эту ошибку:Зенд класс framwork2 не существует

Zend \ Mvc \ Controller \ ControllerManager :: createFromInvokable: не удалось получения «newprojectcontrollernewproject (псевдоним: новыйПроект \ Controller \ Newproject) "через invokable класс" Newproject \ Controller \ new_controller "; класс не существует

module.php

namespace Newproject; 

class Module 
{ 
    public function getConfig() 
    { 
     return include __DIR__ . '/config/module.config.php'; 
    } 

    public function getAutoloaderConfig() 
    { 
     return array(
      'Zend\Loader\StandardAutoloader' => array(
       'namespaces' => array(
        __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, 
       ), 
      ), 
     ); 
    } 
} 

module.config.php класс

return array(
    'controllers' => array(
     'invokables' => array('Newproject\Controller\Newproject' => 'Newproject\Controller\new_controller'), 
    ), 
    'router' => array(
     'routes' => array(
      'newproject' => array(
       'type' => 'segment', 
       'options' => array(
        'route' => '/newproject[/:action][/:id]', 
        'constraints' => array(
         'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 
         'id' => '[0-9]+'), 
         'defaults' => array(
          'controller' => 'Newproject\Controller\Newproject', 
          'action' => 'index' 
         ), 
        ) 
       ) 
      ) 
     ), 
     'view_manager' => array('template_path_stack' => array('newproject' => __DIR__.'/../view'), 
    ), 
); 

Контроллер new_controller.php

namespace Newproject\Controller; 

use Zend\Mvc\Controller\AbstractActionController; 

class new_controller extends AbstractActionController 
{ 
    public function indexAction() 
    { 
    } 
} 
+0

new_controller не является допустимым именем. Измените его на NewController – Stanimir

+0

Каков полный путь (включая имя файла) к новому файлу контроллера? –

ответ

0

Как подробно описано в http://framework.zend.com/manual/current/en/user-guide/routing-and-controllers.html, контроллеры должны начать с большой буквы. Это также хорошая практика придерживаться стандартных соглашений об именах, что означает использование NewController, а не очень, очень конвенция об именовании классов школьной школы (new_controller).

В случае, если это не сработает, взгляните на config/application.config.php. Если включено кэширование конфигурационного файла, соответствующие файлы нужно будет удалить до того, как это сработает.

Основываясь на том, что вы в курсе, я рекомендую следующие изменения:

<?php 

return array(
    'controllers' => array(
     'invokables' => array(
      'NewProject\Controller\New' => 'NewProject\Controller\NewController' 
     ), 
    ), 
    'router' => array(
     'routes' => array(
      'new_project' => array(
       'type' => 'Segment', 
       'options' => array(
        'route' => '/new-project[/:action][/:id]', 
        'constraints' => array(
         'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 
         'id' => '[0-9]+', 
        ), 
        'defaults' => array(
         '__NAMESPACE__' => 'NewProject\Controller', 
         'controller' => 'New', 
         'action' => 'index', 
        ), 
       ), 
      ), 
     ), 
    ), 
    'view_manager' => array(
     'template_path_stack' => array(
      'new-project' => __DIR__.'/../view' 
     ), 
    ), 
); 

И контроллер ...

<?php 

namespace NewProject\Controller; 

use Zend\Mvc\Controller\AbstractActionController; 

class NewController extends AbstractActionController 
{ 
    public function indexAction() 
    { 
    } 
} 
Смежные вопросы