我对CodeIgniter和MVC哲学比较陌生,所以我在做任何坏习惯之前都试图澄清这一点。模型或CodeIgniter控制器中的逻辑?
我有一个注册的应用程序。用户。目前,该流动是这样的:
- 用户导航到“somewebpage /注册”,它加载控制器
- 控制器检查以查看是否在表单提交的“注册”函数 - 如果它是不是,向他们展示形式,否则,调用“用户”模型的“注册”功能
- 用户模型检查以查看用户名是否已被占用。如果是,它会返回一个错误代码(定义为PHP常量)。
- 如果用户名尚未被使用,模型将注册用户并返回TRUE。
- 控制器收集模型返回的“注册”功能,并根据错误代码显示错误页面,成功页面或数据库失败页面。
正如您所看到的,我尝试将尽可能多的逻辑移入模型中。我无法重新定位的唯一逻辑就是表单验证,因为CodeIgniter似乎强迫你把它放到Controller中。 (除非有人知道解决这个问题的方法)
这是我应该用CodeIgniter开发还是一般用MVC开发的方式?
在此先感谢您的帮助。
MVC中的模型假设它具有逻辑,因为它是领域模型,但没有什么能够阻止你将它分解成不同的层。 – airmanx86 2010-07-07 14:57:51
谢谢你的帮助,musoNic80和airmanx86!你们澄清了这个令人困惑的问题。 我越来越担心 - 没有人回答。 ;) 谢谢! – 2010-07-10 06:54:30
@ airmanx86,musoNic80我发现你的讨论很有用,但是我有一个问题。根据从控制器传递给模型的数据,在模型中应用逻辑是一种好方法吗?就像如果一个变量是空的,我想运行这个查询,否则这个查询。这是一个好方法吗? – 2017-03-02 08:29:15