我爲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