为啥即使我更改为数字,laravel 仍然验证电子邮件?

Posted

技术标签:

【中文标题】为啥即使我更改为数字,laravel 仍然验证电子邮件?【英文标题】:Why laravel still validate email even I change to number?为什么即使我更改为数字,laravel 仍然验证电子邮件? 【发布时间】:2020-04-01 02:53:43 【问题描述】:

我想使用号码而不是电子邮件登录: 因此,我将代码更改为:

<div class="panel-body">
   <form class="form-horizontal" method="POST" action=" route('login') ">
    csrf_field() 
   <div class="form-group $errors->has('matric_no') ? ' has-error' : '' ">
   <label for="matric_no" class="col-md-4 control-label">Matric No</label>

   <div class="col-md-6">
   <input id="matric_no" class="form-control" type="number" name="matric_no" value=" 
   old('matric_no') " required autofocus>
   @if ($errors->has('matric_no'))
       <span class="help-block">
       <strong> $errors->first('matric_no') </strong>
       </span>
   @endif
   </div>
</div>

但每次我尝试登录时,错误都是:

电子邮件字段是必需的。

【问题讨论】:

用户名自定义 默认情况下,Laravel 使用电子邮件字段进行身份验证。如果你想自定义这个,你可以在你的 LoginController 上定义一个用户名方法 [link]laravel.com/docs/5.8/authentication#included-authenticating Laravel 自带的默认用户迁移对电子邮件有独特的限制,您可能希望使用自定义迁移来使您的号码独一无二。 请出示控制器。 【参考方案1】:

在你的 LoginController 中插入这段代码

public function username()

    return 'matric_no';

【讨论】:

以上是关于为啥即使我更改为数字,laravel 仍然验证电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章

文本区域验证最大规则在 laravel 6 中不起作用

即使没有表单字段,Laravel 也会显示验证错误?

为啥如果我更改为 INPUT_GET 此代码将始终执行“其他”代码

为啥我的验证器没有在 Laravel 中验证?

我无法登录。即使我在Firebase中输入了电子邮件和密码,它仍然会保持Saying Error Logging

为啥电子邮件验证总是在我的应用程序中出错? [复制]