【问题标题】:CakePHP 2 - Converting Userinputs to lowercaseCakePHP 2 - 将用户输入转换为小写
【发布时间】:2013-03-24 06:54:03
【问题描述】:

我用 CakePHP 2.3 编写了我的项目的用户管理。一切正常。 但现在我想要一个注册功能,用户可以在其中创建自己。 即使那不是问题。但是Cake是自己设置用户名的。

我有 2 个字段。 “名”和“姓” 好吧,我想我将使用 PHP 函数“strtolower”的两个字段都转换为小写,在它们之间放置一个点,结果给出用户名。例如“john.doe”

我唯一的问题是,我该如何度过这个难关。

我认为当我将 php 函数放入我的“注册”视图时它对我没有帮助,因为字段是空的,所以该函数无法完成他的工作。

如何取回它,以便用户按照我的示例对输入进行格式化,并存储在单独的数据库字段中

谁能在这方面帮助我? 提前致谢。

【问题讨论】:

    标签: php cakephp view controller lowercase


    【解决方案1】:

    在您的控制器中保存用户之前。

    例如这样的:

    public function register() {
    
      // ...
    
      $username = strtolower($this->request->data['User']['first_name'] . "." . $this->request->data['User']['last_name']);
      $this->request->data['User']['username'] = $username;
    
      if ($this->User->save($this->request->data)) {
        // ...
      } 
    }
    

    另外,如果您在理解 Cake 或 MVC 设计模式的工作原理方面遇到困难,请帮您一个忙,阅读 CakePHP Cookbook

    【讨论】:

    • 最好在模型内部的beforeValidate()回调中执行这种操作。这保证了用户输入将总是被格式化。在此处阅读手册:Model::beforeValidate()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2010-12-16
    • 2018-10-17
    • 2020-05-29
    • 1970-01-01
    • 2018-12-17
    • 2012-05-06
    相关资源
    最近更新 更多