【问题标题】:laravel customize default form validation in bladelaravel 在刀片中自定义默认表单验证
【发布时间】:2020-12-07 12:56:37
【问题描述】:

如果我不输入电子邮件,我在哪里可以找到默认注册页面的刀片表单表单验证规则,它说此字段是必需的。

刀片文件

<div class="form-group row">
    <label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>
    <div class="col-md-6">
      <input id="email" type="email" class="form-control 
    @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email">

 @error('email')
    <span class="invalid-feedback" role="alert">
        <strong>{{ $message }}</strong>
    </span>
 @enderror
</div>

【问题讨论】:

  • app\Http\Controllers\Auth\RegisterController.php on validator 函数
  • @sta 不是服务器端验证,似乎验证是在客户端完成的,即使我删除了验证器上的验证,它仍然说“请填写此字段”
  • 您所说的“客户端”验证是在任何字段上使用属性required 的内置浏览器验证。与 Laravel/Blade 无关。
  • @kerbh0lz 谢谢我没有注意到我正忙着寻找其他地方

标签: laravel laravel-blade


【解决方案1】:

你可以在app\Http\Controllers\Auth\RegisterController.php找到它,下面是它的代码:

 /**
 * Get a validator for an incoming registration request.
 *
 * @param  array  $data
 * @return \Illuminate\Contracts\Validation\Validator
 */
protected function validator(array $data)
{
    return Validator::make($data, [
        'name' => ['required', 'string', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'min:8', 'confirmed'],
    ]);
}

/**
 * Create a new user instance after a valid registration.
 *
 * @param  array  $data
 * @return \App\User
 */
protected function create(array $data)
{
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
    ]);
}

您也可以在ma​​ke方法的第三个参数中自定义错误信息。

【讨论】:

  • 对该消息“请填写此字段”的验证可能在客户端进行,因为它甚至在表单到达服务器之前就已经发生了。我尝试删除验证器上的验证,但它仍然说请填写此字段
  • 你应该从元素中删除所需的属性。
猜你喜欢
  • 2022-01-21
  • 1970-01-01
  • 2021-06-12
  • 2019-08-17
  • 2015-12-03
  • 1970-01-01
  • 2021-06-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多