2016-11-23 41 views
0

我有一個登錄表單,它使用電話號碼而不是默認電子郵件來驗證用戶。Laravel 5.3在登錄前使用用戶名str_replace

通常情況下,這可以正常工作,但是由於我在輸入字段中設置了數字格式以方便用戶閱讀,因此使用空格發送。

我從形式發送號碼:18 23 23 54

是什麼樣子的數據庫:18232354

因此,我需要刪除空格。

我有什麼(LoginController.php):

public function username() { 
    return "number"; 
} 

我想要什麼(LoginController.php):

public function username() { 
    return (int)str_replace(" ","",$number); 
} 

顯然,上面是不可能的,它只是以顯示期望的結果。

任何幫助,將不勝感激!

+0

'str_replace函數(」」,‘’,$號);'是好的去除空白 – Michel

+0

我會警惕治療中的電話號碼作爲實際數量。數值格式應該用於您想要執行數學運算或存儲效率的事物。在存儲爲用戶名之前,電話號碼必須經過消毒處理,但除了刪除空格外,還應考慮括號,國際撥號代碼,內部擴展名。 – Nick

回答

0

這將返回$number無空格:

public function username() { 
    return str_replace(" ","",$number); 
} 
+0

是的,但使用'$ variable'的問題是它沒有被定義。我需要以某種方式捕捉變量。 它拋出這個錯誤:'ErrorException:未定義的變量:number' 我想我需要這樣的東西: '公共職能的用戶名($申請要求){ 回報str_replace函數(」」, 「」,$請求 - >號); }' 我試過上面的但它沒有捕獲變量。 –

0

它是安全剝離所有非數字字符。例如,如果您將來希望使用-來格式化該號碼,例如18-23-23-54。所以,你的代碼可能是:

preg_replace("/[^0-9]+/g", "", $number); 
+0

是的,但是'$ number'是未定義的。我需要以某種方式捕捉變量(請看上面的註釋) –