2016-11-23 43 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'是未定义的。我需要以某种方式捕捉变量(请看上面的注释) –