2014-01-24 64 views
0

我是Zend Framework的新用戶,我有一個項目要做。問題是我無法配置我的路線到第二個控制器。第一個控制器(索引)完美地工作,但不是新的。在ZF2上創建控制器

我用zftool創建了模塊,所以我有一個名爲「Medicaments」的模塊。當我嘗試使用以下URL localhost/project_zend/public(或localhost/project_zend/public/medicaments)訪問我的項目時,它工作正常,我到達我的IndexController indexAction。但是當我嘗試訪問我的新控制器「ConfigurationController(存在於/ modules/Medicaments/Controller /中)時,我到達一個404頁面,並說」控制器詢問無法發送請求。「並且我的觀點表明。所使用的控制器是「藥品/控制器/索引」,而不是「藥品/控制器/配置」

這裏是我的路由器配置(/modules/Medicaments/config/module.config.php)文件:

'router' => array(
    'routes' => array(
     'home' => array(
      'type' => 'Zend\Mvc\Router\Http\Literal', 
      'options' => array(
       'route' => '/', 
       'defaults' => array(
        'controller' => 'Medicaments\Controller\Index', 
        'action'  => 'index', 
       ), 
      ), 
     ), 
     'medicaments' => array(
      'type' => 'segment', 
      'options' => array(
       'route' => '/medicaments[/:action][/:id]', 
       'constraints' => array(
        'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 
        'id'  => '[0-9]+', 
       ), 
       'defaults' => array(
        '__NAMESPACE__' => 'Medicaments\Controller', 
        'controller' => 'Index', 
        'action'  => 'index', 
       ), 
      ), 
      'may_terminate' => true, 
      'child_routes' => array(
       'default' => array(
        'type' => 'Segment', 
        'options' => array(
         'route' => '/[:controller[/:action]]', 
         'constraints' => array(
          'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', 
          'action'  => '[a-zA-Z][a-zA-Z0-9_-]*', 
         ), 
         'defaults' => array(
         ), 
        ), 
       ), 
      ), 
     ), 
     'configuration' => array(
      'type' => 'segment', 
      'options' => array(
       'route'  => '/configuration[/:action][/:id]', 
       'constraints' => array(
        'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 
        'id'  => '[0-9]+', 
       ), 
       'defaults' => array(
        'controller' => 'Configuration', 
        'action'  => 'index', 
       ), 
      ), 
     ), 
    ), 
), 

謝謝您的幫助

+0

有沒有必要在您的網址中使用「/ public」 – cptnk

回答

1

請通過official Documentation自己的工作(此處鏈接:路由和CONTRO列爾斯)。

當你不知道自己在做什麼時,儘量避免使用工具。從長遠來看,你只會傷害你,尤其是如果事情開始在衝刺中變得棘手。

TL/DR:您必須在controllers配置中創建invokables -entry。

+2

我反覆閱讀官方文檔。我不是在要求你避免自己尋找。我確實使用了invokeables,但它不起作用。所以謝謝你的回答,但如果只是批評,我認爲這不是很有幫助。 –

+0

好的,我花了幾個小時就終於找到答案了......這只是因爲「<?php」標籤打開之前的空間...... –