gpt4 book ai didi

model-view-controller - 使用CodeIgniter的模型或 Controller 中的逻辑?

转载 作者:行者123 更新时间:2023-12-04 08:38:01 24 4
gpt4 key购买 nike

一般来说,我对CodeIgniter和MVC哲学还比较陌生,因此在尝试养成不良习惯之前,我会尽力弄清楚这一点。

我有一个注册的应用程序。用户。当前,流程是这样的:

  • 用户导航到“somewebpage/register”,该页面将加载 Controller
  • 的“register”功能
  • Controller 检查是否提交了表单-如果没有提交,则向他们显示该表单,否则,调用“用户”模型
  • 的“注册”功能
  • 用户模型检查用户名是否已被使用。如果是,它将返回该错误的错误代码(定义为PHP常量)。
  • 如果尚未使用用户名,则该模型将注册用户并返回TRUE。
  • Controller 收集模型的“注册”功能返回的内容,并根据错误代码显示错误页面,成功页面或数据库失败页面。

  • 如您所见,我尝试将尽可能多的逻辑转移到模型中。我无法重定位的唯一逻辑是表单验证的逻辑,因为CodeIgniter似乎迫使您将其放入Controller。 (除非有人知道解决此问题的方法)

    这是我应该使用CodeIgniter还是通常使用MVC进行开发的方式?

    在此先感谢您的帮助。

    最佳答案

    正如您将发现的那样,CI十分灵活,可让您以几种不同的方式组织事物。我的感觉是,应仅将Models保留用于直接与您的数据库通信的函数。我不将它们用于一般逻辑。但是我知道为什么您也不想用逻辑来填充 Controller 。我的解决方案是创建自己的库以包含逻辑,然后从 Controller 调用该逻辑。这里有有关如何创建自己的库的信息:
    http://codeigniter.com/user_guide/general/creating_libraries.html

    对于用户身份验证,我创建了一个名为auth_library.php的库,其中包含登录,注册等 Controller 使用的功能。以相同的方式,您可以创建一个auth_model,其中包含与db连接的函数。

    您可能也对这一系列教程感兴趣:
    http://www.phpandstuff.com/articles/codeigniter-doctrine-from-scratch-day-1-install-and-setup
    作者将带您使用带有CI的doctrine插件,该插件在您的模型和数据库之间放置了一个抽象层。这是非常有趣的,精妙的解释,并为初始示例使用了注册/登录系统。

    关于model-view-controller - 使用CodeIgniter的模型或 Controller 中的逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3191290/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com