我已经用ZF1开发了,现在我要用ZF2了。当你按照教程操作的时候,我已经开始使用相册应用程序了,一切正常。现在我想知道如何在相册模块中添加新的控制器。
我创建了一个新的名为TestController的空控制器及其视图。为了测试它,我用新的TestController默认更改了module.config.php,并且它工作了。在我再次切换到默认的唱片集控制器后,就像本教程中那样。然后..。问题出现在add视图中,我在相册中更改了这一行
<a href="<?php echo $this->url('test', array('action'=>'index'));?>">Test</a>我在浏览器中点击了www.testing.loc/add,但只渲染了脚本的一半,没有任何错误。
我的一些来自相册模块的module.config如下所示:
<?php
return array(
'controllers' => array(
'invokables' => array(
'Album\Controller\Album' => 'Album\Controller\AlbumController',
'Album\Controller\Test' => 'Album\Controller\TestController',
),
),
'router' => array(
'routes' => array(
'album' => array(
'type' => 'segment',
'options' => array(
'route' => '/',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
'controller' => 'Album\Controller\Album',
'action' => 'index',
),
),
),
),
),
'view_manager' => array(
'template_path_stack' => array(
'album' => __DIR__ . '/../view',
),
),
);可能是视图中为url函数提供的参数有一个简单的错误,但我与其他人一起证明了这一点,它是相同的。我开始使用ZF2,但我不知道如何在同一模块中使用多个控制器。任何建议都是非常欢迎的。
发布于 2013-01-26 23:05:01
在您的配置中没有名为test的路由。语法为:
$this->url('ROUTENAME', $routeParams);基本上,您需要做的是更改路由:
'router' => array(
'routes' => array(
'test' => array(
//copy the other parts
)
)
)有关详细信息,请参阅Zend\Mvc\Router-Documentation
https://stackoverflow.com/questions/14537406
复制相似问题