2013-03-24 58 views
0

我已经编写了CakePHP 2.3,为我的项目提供了一个用户管理。一切正常。 但现在我想有一个用户可以在其中创建自己的注册功能。 即使这不是问题。但Cake是为了设置用户名。CakePHP 2 - 将UserInputs转换为小写

我有2个字段。 “first_name”和“last_name” 嗯,我想我把PHP函数“strtolower”转换为小写字母,在它们之间加上一个点,结果给出用户名。例如“john.doe”

我唯一的问题是,我该如何解决这个问题。

我认为它不会帮助我,当我把php函数放到我的“注册”视图中时,因为这些字段是空的,所以函数不能完成他的工作。

我怎么把它找回来,使得输入由用户在我的例子格式为,并存储在一个单独的数据库字段

谁能帮我在这方面? 在此先感谢。

回答

0

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

例如是这样的:

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)) { 
    // ... 
    } 
} 

此外,如果你遇到问题的认识,蛋糕或MVC设计模式是如何工作的,你一个忙,阅读的CakePHP Cookbook

+1

最好在模型内部的'beforeValidate()'回调中执行这种操作。这保证了用户输入将会被格式化。请阅读手册:[Model :: beforeValidate()](http://book.cakephp.org/2.0/en/models/callback-methods.html#beforevalidate) – thaJeztah 2013-03-24 10:24:40