$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()
. 第二个参数是路由器适配器。有许多不同的适配器(查看手册),这个是正则表达式适配器。
第一个参数 - 用于检查 uri 的正则表达式字符串。您将希望将其修改为更适合电子邮件的正则表达式,但现在这应该足够了。
第二个参数是您的默认值。
第三个 - 变量。对于正则表达式中的每个组,您应该指定一个名称,因此 @ 之前的组将变为1 => 'username'
- 之后2 => 'host'
。
最后是第四个参数 - 非常重要 - 反向路线。这个实际上是 Zend 用来粘合碎片的那个。您通过将每个组更改为“符号”来创建它,所以整个事情变成了"%s@%s"
- 你必须阅读一些关于如何创建它们的文章 - 我只使用 %d 仅用于数字, %w 仅用于字母和 % s 混合,不再需要任何东西。
2 - 设置路由器后,返回视图文件并修改函数,使其如下所示:
$this->url(array('username' => 'test', 'host' => 'test.com'), 'email');
您生成的 html 应如下所示:
<a href="test@test.com">EMAIL</a>
3 - 在您的服务器配置或 zend 应用程序 ini 文件中打开 error_reporting。您将对实际出现的故障有更深入的了解。