我对MVC很新,现在我正在阅读CakePHP,ZendFramework等。
我无法理解如何为缺少的Admin控制器方法设置一个404页面,为所有其他控制器的方法设置其他404页面。
问题不是关于ZendFramework,CakePHP等 - 它是关于MVC的。 我正在编写自己的MVC而我无法实现如何实现此功能?
答案 0 :(得分:2)
Zend Framework遵循一种简单的方法。
默认情况下,有一个名为ErrorHandler的Front Controller插件。当从应用程序的任何地方抛出异常时,异常会被ErrorHandler插件捕获。
该插件将异常转发到可能实际呈现错误的相应ErrorController。
所以我猜你可以在你的ErrorController做出任何决定,你可以考虑抛出异常的模块/控制器/动作点。
答案 1 :(得分:1)
在MVC中可以存在权限概念,主要是它被认为是身份验证,但情况并非如此。
如果您有管理员控制器,那么我们会假设您知道用户访问您网站时的身份。因此,我们可以使用它来确定要使用的404页面。
另一个概念是有管理员“页面”和网站“页面”因此,如果有人正在查看您的网站的/ admin /部分,则会显示管理员404页面,否则显示正常的404页面。
答案 2 :(得分:1)
Zend Framework使用的一个解决方案是模块的概念。模块是控制器,模型,视图以及提供特定功能所需的所有组件的分组。我通常编写主要的MVC实现,然后为我的管理员特定的MVC实现添加模块目录。要增加代码重用,可以让代码扩展主应用程序代码。
有关MVC模块背后策略的更多信息,请访问: http://framework.zend.com/manual/en/zend.controller.modular.html