微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MVC:仅用于用户注册的变量放置在控制器助手或模型中?

如何解决MVC:仅用于用户注册的变量放置在控制器助手或模型中?

| 在清理我的MVC中的“注册方法时,我发现自己处于灰色区域。 快速背景:我创建与特定任务相关联的值的数组。 例如:
$field_arr //array of all the values from the register-form.
$user_arr //array of values needed to create a new user.
$required_arr //array of all values that are required for sign up.
$values_arr //array that holds all the values for the items in the multiple arrays.
等...等... 最初,我只是通过将变量声明/填充的这些块放在控制器的辅助函数中来重新组织代码,“ Register \”控制器方法将在例程的开始处调用方法。 但是后来我脑子里开了个开关。   由于此信息与   用户模型不应该被放置   在用户模型中? 但是后来我的另一头又回来了。   是的,它确实相关,但是仅用于   进行注册,因此是   仅在控制器中有用。 我的头哪一侧错了?任何指导将是非常有益和赞赏。 谢谢。     

解决方法

        我将在您的User模型中创建一个
register
方法,并将所需的信息从控制器传递给它,因为这是您应用程序中处理用户输入的部分。重用模型比重用控制器更容易发生,因此这样做可以在将来的项目中节省一些时间(只需复制到User模型上即可)。 另一个好处是,您现在可以在应用程序的多个点使用此注册逻辑。当然,用户注册不是最好的例子,但是我希望您知道这在其他情况下如何有用。 当我遇到类似情况时,我想记住的一句话是“瘦控制器,胖模型”。尝试使您的控制器苗条,并随意增添那些模型! :) 编辑:这是一些伪代码,以帮助解释我的意思...
class RegistrationController {
  function register() {
      // Sanitizing your data here would be a good idea
      $fieldArr = $_POST[\'data_from_your_form\']; 

      $user = new User();
      $result = $user->register($fieldArr);

      if ($result) {
          // User successfully reg\'d
      } else {
          // Oops! Problem registering user
      }
  }  
}
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。