2016-11-23 22 views
0

ユーザーの認証にデフォルトの電子メールの代わりに電話番号を使用するログインフォームがあります。Laravel 5.3ログイン前のユーザー名のstr_replace

通常、これは問題なく動作しますが、読みやすいように入力欄で数字をユーザーの便宜のために書式化したため、空白で送信されています。

私は、フォームから送信数:18 23 23 54

何それは、データベース内のようだ:18232354

そこで私は、ホワイトスペースを削除する必要があります。

は私が(LoginController.php)持っている:私は(LoginController.php)欲しい

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

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

もちろん上記は、それだけで、可能ではありません所望の結果を示す。

助けていただけたら幸いです!

+0

'str_replace(」」、『』、$番号);'私は、実際の番号として電話番号を処理することに対して警告したいの空白 – Michel

+0

を削除して結構です。数学的な形式は、記憶の効率を上げるために、または効率のために数学的な操作を実行するために使用する必要があります。電話番号はユーザー名として保存する前に間違いなく消毒する必要がありますが、スペースの削除に加えて、角かっこ、国際ダイヤルコード、内線番号も考慮してください。 – Nick

答えて

0

これは、空白なし$numberを返します。

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

はい、しかし、 '$変数 'を使用する際の問題は定義されていないということです。私は何とか変数をキャッチする必要があります。 それは、このエラーがスローされます: 'ErrorException:未定義の変数: 'パブリック関数のユーザー名(リクエスト$リクエスト){ リターンstr_replace(」」、 ""、$要求 - >数:number' 私は私のようなものを必要とすると仮定); } ' 私は上記を試みましたが、変数をキャッチしません。 –

0

すべての非数字文字を削除する方が安全です。たとえば、将来、18-23-23-54のように-の数値をフォーマットする場合は、だからあなたのコードは次のようになります。

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

はい、しかし '$ number'は未定義です。私は何とか変数をキャッチする必要があります(上記のコメントを見てください) –

関連する問題