2017-06-21 103 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