我为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本身。尽管如此,我不知道在创建我自己的无法找到的控制器时犯了什么错误。
我已经尝试过了,在某些时候我甚至在两个位置都制作了两个控制器文件,仍然没有运气 – ficus
对不起,忘了最后的“Controller”目录。 –
同上。虽然它现在可用,但在Admin/src/Admin/Controller/AdminController.php路径下。我不知道是什么问题,我使用zftools生成了控制器并重新安装了模块,但是我没有看到文件中的差异。不管怎样,谢谢你! – ficus