我尝试关注Akrabats Tutorial应用程序/索引正在运行,而专辑部分没有。
我也尝试了ZendSkeletonModule而没有运气。
两种情况下的错误都是:
album/album (resolves to invalid controller class or alias: album/album)
我尝试使用ZF2 master和beta4标签(但beta4标签给出了关于缺少方法getEventManager的php错误)
我从Akrabats教程中获取代码,然后失败后使用代码形式GitHub Repo。不幸的是,没有一些论坛或评论部分可以寻求帮助。
我在教程和Skeleton(zfcUser有相同的差异)中发现了一些不同之处在module.config.php中(我相信这是问题的核心)。
本教程使用classes
在控制器索引,zfcUser和Skeleton中使用invokables
,但它似乎并不重要,因为错误不会改变。
我的module.config目前看起来像这样:
<?php
return array(
// Controllers in this module
'controller' => array(
'invokables' => array(
'album/album' => 'Album\Controller\AlbumController',
),
),
// Routes for this module
'router' => array(
'routes' => array(
'album' => array(
'type' => 'Literal',
'priority' => 1000,
'options' => array(
'route' => '/album',
'defaults' => array(
'controller' => 'album/album',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'misc' => array (
'type' => 'segment',
'options' => array(
'route' => '/album/[:action][/:id]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
'controller' => 'album/album',
'action' => 'index',
),
),
),
),
),
),
),
// View setup for this module
'view_manager' => array(
'template_path_stack' => array(
'album' => __DIR__ . '/../view',
),
),
);
相册\控制器\ AlbumController:
<?php
namespace Album\Controller;
use Zend\Mvc\Controller\ActionController,
Zend\View\Model\ViewModel,
Album\Model\AlbumTable,
Album\Model\Album,
Album\Form\AlbumForm;
class AlbumController extends ActionController
{
// [....]
}
我不知道在哪里修复此错误,你有人有想法吗?
如果没有另外提及,代码就像github上的原始代码(见上面的链接)。
TIA
答案 0 :(得分:7)
这里的不同之处不仅在于invokables,而且数组键现在是复数形式的“controller s ”,这对我来说很有用。在您的代码中,“invokables”已经更改,但您似乎使用“controller”作为密钥。
'controllers' => array(
'invokables' => array(
'album/album' => 'Album\Controller\AlbumController',
),
),
答案 1 :(得分:4)
显然控制器阵列有变化。现在classes键被更改为invokables: 在module.config.php
'controller' => array(
'classes' => array(
'album/album' => 'Album\Controller\AlbumController',
),
),
必须更改为
'controllers' => array(
'invokables' => array(
'album/album' => 'Album\Controller\AlbumController',
),
),
答案 2 :(得分:3)
发现它,它的ActionController类似乎已经消失在ZF2-beta4上,所以你的AlbumController 需要这样:
use Zend\Mvc\Controller\AbstractActionController,
Zend\View\Model\ViewModel;
class AlbumController extends AbstractActionController {
.....
}
答案 3 :(得分:0)
你必须正确配置/ application.config.php
<?php
return array(
'modules' => array(
'Application',
'Album',
),
'module_listener_options' => array(
'config_glob_paths' => array(
'config/autoload/{,*.}{global,local}.php',
),
'module_paths' => array(
'./module',
'./vendor',
),
),
);