2016-05-12 12 views
2

Ich habe eine Anwendung mit drei Modulen mit mehreren Controllern in jedem Modul. Alle diese Controller funktionieren gut. Aber jetzt versuche ich einen neuen Controller in meinem Privado Modul zu erstellen, in diesem route/domain/privado/querys/querys.ZF2 findet nicht Controller

ich den Controller erstellt haben, ihrer Meinung nach, und config in module.config.php

'privado/querys' => array(
      'type' => 'Literal', 
      'options' => array(
        'route' => '/privado/querys', 
        'defaults' => array(
          '__NAMESPACE__' => 'Privado\Controller', 
          'controller' => 'Index', 
          'action'  => 'index', 
        ), 
      ), 
      'may_terminate' => true, 
      'child_routes' => array(
        'default' => array(
          'type' => 'Segment', 
          'options' => array(
           //'route' => '/[:controller[/:action[/:id]]]', 
           'route' => '/[:controller[/:action][/:id/:system]]', 
           'constraints' => array(
              'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', 
              'action'  => '[a-zA-Z][a-zA-Z0-9_-]*', 
              'id'   => '[0-9]*', 
              'system'  => '[a-zA-Z][a-zA-Z0-9_-]*' 
              //'system' => '[0-9]*' 
           ), 
           'defaults' => array(
           ), 
          ), 
        ), 
      ), 
     ), 
'controllers' => array(
    'invokables' => array(
     'Privado\Controller\Index'    => Controller\IndexController::class, 
     'Privado\Controller\Usuario'   => Controller\UsuarioController::class, 
     'Privado\Controller\Profile'   => Controller\ProfileController::class, 
     'Privado\Controller\Sistemas'   => Controller\SistemasController::class, 
     'Privado\Controller\UnidadesServicio' => Controller\UnidadesServicioController::class, 
     'Privado\Controller\Metales'   => Controller\MetalesController::class, 
     'Privado\Controller\Pases'    => Controller\PasesController::class, 
     'Privado\Controller\Estado'    => Controller\EstadoController::class, 
     'Privado\Controller\QuerysController' => Controller\QuerysController::class, 
     'Privado\Controller\TestController'  => Controller\TestController::class 
    ), 
), 
'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', 
     'privado/index/index' => __DIR__ . '/../view/privado/index/index.phtml', 
     'error/404'    => __DIR__ . '/../view/error/404.phtml', 
     'error/index'    => __DIR__ . '/../view/error/index.phtml', 
    ), 
    'template_path_stack' => array(
     __DIR__ . '/../view', 
    ), 
    /* 
    * Con este array de parámetros permitimos enviar datos y no mostrar vista 
    */ 
    'strategies' => array(
      'ViewJsonStrategy', 
    ),   
), 

Und die Steuerung kehrt mir das Layout von einem anderen Modul Der Controller mir das Layout aus dem Modul Publico zurück . Ich verstehe nur, was ich verpasst habe.

Edit 1:

A 404 Fehler aufgetreten Seite nicht gefunden:

ich das falsche Layout und diese Meldung auf dem Bildschirm haben.

Die angeforderte Steuerung konnte nicht einer vorhandenen Klasse zugeordnet werden.

Controller: Privado \ Controllers \ Querysasdad (löst Controller-Klasse oder Alias ​​ungültig: Privado \ Controllers \ Querysasdad)

keine Ausnahme verfügbar

Dies ist der Fehler, den ich auch habe , Wenn ich einen Controller schreibe, der in der URL nicht existiert!

Ich habe einen anderen Controller in einem anderen Modul nach den gleichen Schritten: Erstellen Sie den Controller, erstellen Sie die Ansicht, config module.config.php und funktioniert gut.

Antwort

0

Ich habe meine schreckliche Fehler gefunden:

In meinem module.config.php ich in invocables haben ...

'Privado\Controller\QuerysController' => Controller\QuerysController::class, 
'Privado\Controller\TestController'  => Controller\TestController::class 

ich die problema zu beheben, "Controller" von „Privado \-Controller entfernen \ QuerysController“und‚Privado \ Controllers \ Testcontroller‘

'Privado\Controller\Querys' => Controller\QuerysController::class, 
'Privado\Controller\Test'  => Controller\TestController::class 
+2

der Schlüssel des Arrays braucht keinen Weg zu sein, es muss nur eine eindeutige Zeichenfolge, um die Steuerung zu identifizieren. Zum Beispiel könnte es lesen: 'QuerysController' => Controller \ QuerysController :: Klasse oder sogar 'SomethyCrazy' => Controller \ QuerysController :: Klasse solange Sie es entsprechend in Zeile 7 oben verweisen – STLMikey

Verwandte Themen