2013-06-12 53 views
0
我同時實施,如下面我摘錄定義多條路線有問題

多種途徑在ZF2

編輯:我收到此異常也 其他信息: 的Zend \的mvc \異常\ InvalidControllerException

與Message

控制器類型賬戶\控制器\ VoucherController無效;必須實現的Zend \ STDLIB \ DispatchableInterface

<?php 
namespace Account; 
return array(
'controllers' => array(
    'invokables' => array(
     'Account\Controller\Account' => 'Account\Controller\AccountController', 
     'Account\Controller\Voucher' => 'Account\Controller\VoucherController', 
    ), 
    // --------- Doctrine Settings For the Module 
    'doctrine' => array(
     'driver' => array(
      'account_entities' => array(
       'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver', 
       'cache' => 'array', 
       'paths' => array(__DIR__ . '/../src/Account/Entity') 
      ), 
      'orm_default' => array(
       'drivers' => array(
        'Account\Entity' => 'account_entities' 
       ) 
      ) 
     ) 
    ), 
    // The following section is new and should be added to your file 
    'router' => array(
     'routes' => array(
      'account' => array(
       'type' => 'segment', 
       'options' => array(
        'route' => '/account[/][:action][/:id]', 
        'constraints' => array(
         'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 
         'id' => '[0-9]+', 
        ), 
        'defaults' => array(
         'controller' => 'Account\Controller\Account', 
         'action' => 'index', 
        ), 
       ), 
      ), 
      'voucher' => array(
       'type' => 'segment', 
       'options' => array(
        'route' => '/account/voucher[/][:action][/:id]', 
        'constraints' => array(
         'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 
         'id' => '[0-9]+', 
        ), 
        'defaults' => array(
         'controller' => 'Account\Controller\Voucher', 
         'action' => 'index', 
        ), 
       ), 
      ), 
     ), 
    ), 
    'view_manager' => array(
     'template_path_stack' => array(
      'account' => __DIR__ . '/../view', 
     ), 
    ), 
), 
); 

現在的問題是我得到一個404,當我嘗試訪問MYHOST /帳號/憑證 PS:我已經在賬戶控制器/控制器/憑證和帳戶/查看/憑證下的視圖名爲index.phtml現在我不知道我在這裏錯過了什麼。

+1

錯誤信息Controller type of Account \ Controller \ VoucherController無效;必須實現Zend \ Stdlib \ DispatchableInterface'說你的控制器錯了。它必須包含DispatchableInterface(如果它擴展了ActionController,那麼它會執行)。如果您無法弄清楚,請編輯您的問題並顯示您的控制器代碼。 – timdev

+1

請張貼您的控制器代碼。看起來像是控制器類的問題,而不是你的路線。 – Andrew

+0

@timdev你是對的,我有執行AbstractInterfaceController的問題。我沒有執行,如果你可以回答,我可以將它標記爲正確 –

回答

1

正如Adnrew和Timdev在上面評論的那樣,控制器中有些東西不對,您可以在控制器中檢查一些基本的東西,以確保您的代碼正確。特別是錯別字。

namespace Account\Controller; 

use Zend\Mvc\Controller\AbstractActionController; 
use Zend\View\Model\ViewModel; 



class VoucherController extends AbstractActionController { 

// you acctions 


} 
+0

非常真實我正在標記這是正確的,因爲我認爲Timedev回答了第一,但作爲評論 –