2017-10-09 9 views
-1

Dans Zend framework 3, j'ai essayé d'ajouter un nouveau contrôleur "ArticleController" à un module existant City mais j'ai échoué. Je poste une capture d'écran, ma structure de dossier et module.config.php. Pourriez-vous expliquer quel est le problème? Soit dit en passant, il a travaillé lors de l'accès http://0.0.0.0:7000/cityAjout d'un nouveau contrôleur au module existant dans zf3

Lorsque vous accédez à http://0.0.0.0:7000/article enter image description here enter image description here

Ensuite, le module \ ville \ config \ module.config.php codes suivants:

<?php 

namespace City; 

use Zend\Router\Http\Segment; 

return [ 
    'router' => [ 
     'routes' => [ 
      'city' => [ 
       'type' => Segment::class, 
       'options' => [ 
        'route' => '/city[/:action[/:id]]', 
        'constraints' => [ 
         'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 
         'id'  => '[0-9]+', 
        ], 
        'defaults' => [ 
         'controller' => Controller\CityController::class, 
         'action'  => 'index', 
        ], 
       ], 
      ], 
      'article' => [ 
       'type' => Segment::class, 
       'options' => [ 
        'route' => '/article[/:action[/:id]]', 
        'constraints' => [ 
         'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 
         'id'  => '[0-9]+', 
        ], 
        'defaults' => [ 
         'controller' => Controller\ArticleController::class, 
         'action'  => 'index', 
        ], 
       ], 
      ], 
     ], 
    ], 

    'view_manager' => [ 
     'template_path_stack' => [ 
      'city' => __DIR__ . '/../view', 
     ], 
    ], 
]; 

Répondre

2

Message d'erreur est clair . L'application ne sait rien de votre contrôleur. Votre configuration de module doit avoir des informations sur les contrôleurs sous la clé "controllers". Checkout zend documentation, vous verrez la clé "contrôleurs" dans le fichier de configuration.

+0

Merci d'avoir répondu et désolé d'être en retard pour répondre. J'ai essayé d'ajouter "controllers" à module.config.php mais il a échoué. Ensuite, j'ai trouvé la solution. ajouter des valeurs pour le contrôleur d'article à la clé "usines" dans City/src/Module.php. Après avoir terminé tutoriel zend framework, j'ai essayé d'ajouter un nouveau contrôleur. Tutoriel appliqué "usines" donc il n'a pas réussi. https://docs.zendframework.com/tutorials/getting-started/database-and-models/ Très désolé, Mehmet. – hikozuma

+0

Je suppose que votre config "contrôleurs" config est comme [ "contrôleurs" => [ "usines" => [ "MyController" => "MyControllerFactory"]]] Voici comment "contrôleurs" comment être. Vous n'avez pas besoin d'usine si votre contrôleur n'a pas d'injection de dépendance. Vous l'enregistrerez donc sous la clé "invokables". ["controllers" => ["invokables" => ["MyController"]]] –