在Zend框架中显式处理无效的控制器

时间:2011-08-09 16:25:45

标签: php zend-framework

我是Zend的新开发人员,我正在研究Zend中一个非常简单的应用程序,它将允许我发布这些页面。

要这样做,我需要创建一种获取控制器名称和操作名称的方法(如果它不存在)。

例如,我有一个名为page的控制器,在该控制器的view操作中,我根据id I Pass显示页面内容。所以他的网址是:

http://localhost/page/view/slug/some-slug-value

如果我写下以下链接,我想要

http://localhost/some-slug-value

而不是显示无效的控制器错误,它还应该为该段塞服数据库并在页面控制器中打开视图操作。

即使我必须显示一些错误,我也不想更改网址http://localhost/some-slug-value

如果我必须处理无效操作,我可以通过该控制器中的__call()函数来完成。所以我需要一个__call函数来处理无效的控制器。

由于我是Zend的新手,请同时提及我要编写的代码,并提出建议。

提前致谢

2 个答案:

答案 0 :(得分:1)

由于缺少控制器/操作,

Zend_Controller_Plugin_ErrorHandler可以处理异常,默认情况下已启用。你可以将你的逻辑放在里面。

答案 1 :(得分:1)

在使用自定义插件here之前,我已回答了类似的问题。

基本上,它检查是否可以调度请求,如果不能,则重定向到另一个控制器/操作。这发生在ErrorHandler插件之前,允许ErrorHandler仅按预期处理错误。

修改

我应该注意链接问题上的插件,我引用了用户名。在您的情况下,您将不得不用slug替换用户名。