ZF2 - ZfcAdmin - 覆盖控制器

时间:2017-06-21 10:07:05

标签: php zend-framework2

我正在使用ZfcAdmin模块用于ZF2(https://github.com/ZF-Commons/ZfcAdmin/),我无法使用自己的控制器。

根据模块文档(https://github.com/ZF-Commons/ZfcAdmin/blob/master/docs/2.Routes.md)我可以在我的新模块路由配置中简单地从文档中添加这个片段之后使用我自己的控制器,但是它只会导致重定向到主页,因为它没有&找不到路线。所以我添加了这部分:

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

导致错误:

  

异常:Zend \ Mvc \ Controller \ ControllerManager :: createFromInvokable:检索失败" admincontrolleradmin(别名:Admin / Controller / Admin)"通过invokable class" Admin \ Controller \ AdminController&#34 ;; /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 个答案:

答案 0 :(得分:1)

Zend 2找不到您的“AdminController.php”。

您最好的选择是将“AdminController.php”更改为“module / Admin / src / Controller /”,而不是“module / Admin / src / Admin /".