Model view controller Zend框架用户身份验证(MVC问题)

Model view controller Zend框架用户身份验证(MVC问题),model-view-controller,zend-framework,authentication,zend-auth,Model View Controller,Zend Framework,Authentication,Zend Auth,我在理解MVC概念方面遇到了一些困难 我正在建立一个用户模型,你知道吗?应用程序\模型\用户。他们说模型应该只包含结构。。。业务逻辑应该放在控制器中 ,考虑一个称为身份验证的函数($Author,$密码)。如果输入的用户名和密码有效,此函数将返回true;否则返回false。我应该把这个函数放在哪里?在控制器身份验证中还是在模型用户中 谢谢大家! 与模型相关,无论何时需要检索数据(从数据库、Web服务、文件系统)或保存数据,都需要一个模型来完成这项工作。在MVC中,模型不被理解为映射表,可能更像

我在理解MVC概念方面遇到了一些困难

我正在建立一个用户模型,你知道吗?应用程序\模型\用户。他们说模型应该只包含结构。。。业务逻辑应该放在控制器中

,考虑一个称为身份验证的函数($Author,$密码)。如果输入的用户名和密码有效,此函数将返回true;否则返回false。我应该把这个函数放在哪里?在控制器身份验证中还是在模型用户中


谢谢大家!

与模型相关,无论何时需要检索数据(从数据库、Web服务、文件系统)或保存数据,都需要一个模型来完成这项工作。在MVC中,模型不被理解为映射表,可能更像映射器。Zend在他们的网站上有一些关于这方面的信息,它可以帮助你更好地理解mvc

当涉及到用户身份验证时,您当然应该在用户模型中实现authenticate功能,我认为您将根据表或类似的内容执行数据库检查。
为了防止您还没有使用它,Zend附带了一个用于身份验证的包:Zend_Auth(http://framework.zend.com/manual/en/zend.auth.html),它可以加快在应用程序中实现安全性。

尽管模型操作通常包括存储操作(DB、servicer等),但并不限于此。据我所知,模型应该包括业务逻辑实体,也就是表示您的业务实体的类,如用户、个人、客户等。每个类都应该定义自己的操作方法,例如,个人模型类应该允许您获取一个人的姓名,根据他/她的出生日期计算他/她的年龄,等等

此外,还应该有专门的模型存储和检索类。使用这些类,您可以使用某些条件等获取所有客户,或者仅获取一个客户,或者保存修改后的客户类实例(例如,客户更改了地址或电话号码)

这将存储/检索操作与业务登录操作分离

因此,根据您的问题,您的模型可能有一个类,允许您通过用户名和密码查找一个用户。如果找到该用户,您可以返回一个Model_用户类实例(在示例中)。然后,使用标准Zend_Auth类,或者扩展它来创建自己的身份验证类,您可以使用一些登录表单参数来执行用户身份验证

遵循Zend Framework快速入门指南,在Zend Framework中有关于MVC的基础知识。此外,您将在那里找到一些关于Zend_Db和相关类的资源,以允许Db交互。还有Zend_Db_Table、Zend_Db_Table_行集和Zend_Db_Table_行类,您可以扩展它们以满足您的模型存储需求

我有一个个人解决方案,其中我为我的(在示例中)Model_UserTable类扩展Zend_Db_表,用于存储或查询我的Model_用户实体。我的Model_用户类扩展了Zend_Db_Table_行