php - 在 Laravel 8 中自定义 Jetstream 注册页面验证错误消息
问题描述
我在 laravel 8 中使用默认的 jetstream 注册页面:
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="container d-flex flex-column justify-content-between vh-100">
<div class="row justify-content-center mt-5">
<div class="col-xl-5 col-lg-6 col-md-10">
<div class="card">
<div class="card-header bg-primary">
<div class="app-brand">
<a href="/index.html">
<svg class="brand-icon" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid" width="30"
height="33" viewBox="0 0 30 33">
<g fill="none" fill-rule="evenodd">
<path class="logo-fill-blue" fill="#7DBCFF" d="M0 4v25l8 4V0zM22 4v25l8 4V0z" />
<path class="logo-fill-white" fill="#FFF" d="M11 4v25l8 4V0z" />
</g>
</svg>
<span class="brand-name">Sleek Dashboard</span>
</a>
</div>
</div>
<div class="card-body p-5">
<h4 class="text-dark mb-5">Sign Up</h4>
<form method="POST" action="{{ route('register') }}">
@csrf
<div class="row">
<div class="form-group col-md-12 mb-4">
<input type="text" name="name" :value="old('name')" required autofocus autocomplete="name" class="form-control input-lg" id="name" aria-describedby="nameHelp" placeholder="Name">
@if ($errors->has('name'))
<span class="invalid-feedback">
<strong>{{ $errors->first('name') }}</strong>
</span>
@endif
</div>
<div class="form-group col-md-12 mb-4">
<input type="email" name="email" :value="old('email')" required class="form-control input-lg" id="email" aria-describedby="emailHelp" placeholder="Email">
</div>
<div class="form-group col-md-12 ">
<input type="password" name="password" required autocomplete="new-password" class="form-control input-lg" id="password" placeholder="Password">
</div>
<div class="form-group col-md-12 ">
<input type="password" name="password_confirmation" required autocomplete="new-password" class="form-control input-lg" id="cpassword" placeholder="Confirm Password">
</div>
<div class="col-md-12">
<input type="checkbox" name="terms" value="true" {{ !old('terms') ?: 'checked' }}>
<label>Do you agree to Terms & Conditions</label><br/><br/>
<button type="submit" class="btn btn-lg btn-primary btn-block mb-4">Sign Up</button>
<p>Already have an account?
<a class="text-blue" href="{{ route('login') }}">Sign in</a>
</p>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
我想知道当验证措施发生时如何自定义这些错误消息?
我应该编辑哪个页面?我经历了,config/auth.php
但我没有看到任何要编辑的东西。
还访问了模型,没有什么可以检查的。
请帮忙!
解决方案
如果您正在寻找自定义验证错误消息,那么您可以将其更改为App\Http\Controllers\Auth\RegisterController
protected function validator(array $data)
{
return Validator::make($data, [
'username' => ['required', 'string', 'max:255', 'unique:users'],
'first_name' => ['required', 'string', 'max:255'],
'last_name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:6', 'confirmed'],
],[
'username.required'=>'custom message',
'username.string'=>'custom message',
'username.max'=>'custom message',
'username.unique'=>'custom message',
]);
}
App\Actions\Fortify\CreateNewUser
public function create(array $input)
{
Validator::make($input, [
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => $this->passwordRules(),
'terms' => Jetstream::hasTermsAndPrivacyPolicyFeature() ? ['required', 'accepted'] : '',
],,[
'name.required'=>'Name is required',
'email.required'=>'Email is required',
'phone.required'=>'Phone is required',
])->validate();
return User::create([
'name' => $input['name'],
'email' => $input['email'],
'password' => Hash::make($input['password']),
]);
}
推荐阅读
- python - cx_Oracle.DatabaseError ORA-01804 但我已经设置了环境变量
- c - 创建初始化函数时“初始化元素不是常量”
- python - 如何在 JupyterLab/JupyterHub python notebook 中显示服务器端文件的文件选择对话框?
- c++ - 如何从返回类型未知的函数中获取 c/c++ 中的字节数组?
- c# - 字节和字节数组有什么区别?
- java - 从另一个类调用变量时是否可以避免使用“静态”?
- java - Android:在按钮单击时设置警报
- c++ - 质数测试。这个程序的执行速度是否比其他所有程序都快?
- javascript - 根据Angular中子循环中的数据隐藏父项中的项目
- vue.js - Vue JS 创建 web 组件的问题