2017-06-21 108 views
1

我爲ZF2使用ZfcAdmin模塊(https://github.com/ZF-Commons/ZfcAdmin/),我不能使用自己的控制器。ZF2 - ZfcAdmin - 凌駕控制器

根據模塊文檔(https://github.com/ZF-Commons/ZfcAdmin/blob/master/docs/2.Routes.md),我應該能夠使用我自己的控制器,只需從我的新模塊路由配置文檔中添加此片段,但它只是導致重定向到主頁面,因爲它沒有找到路線。所以,我已經加入這一部分:

'controllers' => array(
    'invokables' => array(
     'Admin\Controller\Admin' => 'Admin\Controller\AdminController', 
    ), 
), 

導致錯誤:

Exception: Zend\Mvc\Controller\ControllerManager::createFromInvokable: failed retrieving "admincontrolleradmin(alias: Admin/Controller/Admin)" via invokable class "Admin\Controller\AdminController"; class does not exist in /var/www/app/vendor/zendframework/zend-servicemanager/src/AbstractPluginManager.php:240

Module.php

<?php 
namespace Admin; 

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

<?php 
return array(
    'controllers' => array(
    'invokables' => array(
     'Admin\Controller\Admin' => 'Admin\Controller\AdminController', 
    ), 
), 


    'router' => array(
    'routes' => array(
     'zfcadmin' => array(
     'options' => array(
      'defaults' => array(
      'controller' => 'Admin/Controller/Admin', 
      'action'  => 'test', 
     ), 
     ), 
    ), 
    ), 
), 
); 

模塊/管理/ src目錄/管理/ AdminController.php

<?php 

namespace Admin\Controller; 

use Zend\Mvc\Controller\AbstractActionController; 

class AdminController extends AbstractActionController 
{ 
    public function testAction() 
    { 
    echo('test'); 
    die(); 
    } 
} 

我99%肯定它是我的錯,不是zfcadmin本身。儘管如此,我不知道在創建我自己的無法找到的控制器時犯了什麼錯誤。

回答

1

Zend 2無法找到您的「AdminController.php」。

你最好的選擇是將「AdminController.php」改爲「module/Admin/src/Controller /」下,而不是「module/Admin/src/Admin /」。

+0

我已經嘗試過了,在某些時候我甚至在兩個位置都製作了兩個控制器文件,仍然沒有運氣 – ficus

+0

對不起,忘了最後的「Controller」目錄。 –

+0

同上。雖然它現在可用,但在Admin/src/Admin/Controller/AdminController.php路徑下。我不知道是什麼問題,我使用zftools生成了控制器並重新安裝了模塊,但是我沒有看到文件中的差異。不管怎樣,謝謝你! – ficus