Zend framework 创建了一个新的Zend控制器,但可以';在布局中指定时,是否无法访问?

Zend framework 创建了一个新的Zend控制器,但可以';在布局中指定时,是否无法访问?,zend-framework,Zend Framework,我使用以下工具创建了一个新控制器: zf create controller email 但是生成的文件并没有放在应用程序/模块中,而是放在应用程序中 无论如何,我将控制器和视图文件移动到了正确的目录中 然后我用了: <a href="<?php echo $this->url(array(), 'email');?>">EMAIL</a> 刷新页面后,会出现内部错误500 不知道剪切的是什么->它是Zend版本:1.12.1$this->url

我使用以下工具创建了一个新控制器:

zf create controller email
但是生成的文件并没有放在
应用程序/模块中
,而是放在
应用程序中

无论如何,我将控制器和视图文件移动到了正确的目录中

然后我用了:

<a href="<?php echo $this->url(array(), 'email');?>">EMAIL</a>

刷新页面后,会出现
内部错误500

不知道剪切的是什么->它是
Zend版本:1.12.1

$this->url()视图帮助程序通过匹配给定的参数和路由名称来创建URI

为了使代码正常工作,您必须:

1-在路由器文件中,指定路由,例如:

    $router->addRoute(
        'email', 
        new Zend_Controller_Router_Route_Regex('([\w\d\.\_]+)@([\w\d\.]+)([\s]*)',
            array(
                'module' => 'default',
                'controller' => 'index',
                'action' => 'index'
            ),
            array(
                1 => 'username',
                2 => 'host'
            ),
            '%s@%s'
        )
    );
addRoute的第一个参数是路由的名称,这是您用作
$this->url()
的第二个参数。第二个参数是路由器适配器。有许多不同的适配器(请参阅手册),这一个是regex适配器

第一个参数-用于检查uri的正则表达式字符串。您可能希望将其修改为一个更具电子邮件智能的正则表达式,但现在这就足够了

第二个参数是默认值

第三个变量。对于正则表达式中的每个组,您应该指定一个名称,因此@前面的组将变成
1=>“username”
,后面的组变成-
2=>“host”

最后是第四个参数——非常重要——反向路径。这个实际上是Zend用来粘碎片的。您可以通过将每个组更改为“符号”来创建它,这样整个过程就变成了
“%s@%s”
-您必须阅读一些关于如何创建这些组的文章-我只使用%d表示数字,使用%w表示字母,使用%s表示混合,不需要更多

2-设置路由器后,返回查看文件并修改功能,使其看起来像这样:

    $this->url(array('username' => 'test', 'host' => 'test.com'), 'email');
<a href="test@test.com">EMAIL</a>
生成的html应如下所示:

    $this->url(array('username' => 'test', 'host' => 'test.com'), 'email');
<a href="test@test.com">EMAIL</a>


3-在服务器配置或zend应用程序ini文件中打开错误报告。您将对实际出现的故障有更深入的了解。

我正在使用
configs/application.ini
文件来配置和引导:

因此,向文件中添加以下行是有效的

resources.router.routes.email.route = /email
resources.router.routes.email.defaults.module = default
resources.router.routes.email.defaults.controller = email
resources.router.routes.email.defaults.action = index

因此,路由显然需要显式声明,并且不由
zf工具处理

,如果是应用程序错误,则很可能引发异常。你能给我们提供例外信息吗?