2013-03-24 54 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