Laravel 在哪里添加用户注册的自定义验证
我有一个自定义登记表,我需要(用户电话号码和公司id)以及电子邮件和密码。 电话号码和公司id将获得api调用,以验证其是否存在于comapny目录中。如果它通过了,那么我需要允许用户模型进行注册,但是如果它失败了,那么返回一个失败 问:在注册链中,我应该在哪里进行此api调用以允许/拒绝注册 我的Laravel 在哪里添加用户注册的自定义验证,laravel,Laravel,我有一个自定义登记表,我需要(用户电话号码和公司id)以及电子邮件和密码。 电话号码和公司id将获得api调用,以验证其是否存在于comapny目录中。如果它通过了,那么我需要允许用户模型进行注册,但是如果它失败了,那么返回一个失败 问:在注册链中,我应该在哪里进行此api调用以允许/拒绝注册 我的\resources\views\auth\register.blade.php如下所示 <div class="container"> <div cla
\resources\views\auth\register.blade.php
如下所示
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">{{ __('Register') }}</div>
<div class="card-body">
<form method="POST" action="{{ route('register') }}">
@csrf
<div class="form-group row">
<label for="companyid" class="col-md-4 col-form-label text-md-right">Innovations ID</label>
<div class="col-md-6">
<input id="companyid" type="text" class="form-control" name="companyid" value="" required autofocus>
</div>
</div>
<div class="form-group row">
<label for="telephonenumber" class="col-md-4 col-form-label text-md-right">Zip Code</label>
<div class="col-md-6">
<input id="telephonenumber" type="text" class="form-control" name="telephonenumber" value="" required autofocus>
</div>
</div>
<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>
</div>
<div class="form-group row">
<label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>
<div class="col-md-6">
<input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="new-password">
@error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row">
<label for="password-confirm" class="col-md-4 col-form-label text-md-right">{{ __('Confirm Password') }}</label>
<div class="col-md-6">
<input id="password-confirm" type="password" class="form-control" name="password_confirmation" required autocomplete="new-password">
</div>
</div>
<div class="form-group row mb-0">
<div class="col-md-6 offset-md-4">
<button type="submit" class="btn btn-primary">
{{ __('Register') }}
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
这是我的用户模型app\user.php
protected $fillable = [
'companyid', 'telephonenumber', 'email', 'password',
];
protected $hidden = [
'password', 'remember_token',
];
protected $casts = [
'email_verified_at' => 'datetime',
];
您需要在RegisterController的
create
方法中执行此操作
您可以使用Http
facade在create方法中进行api调用。但在项目中,您需要将guzzle作为依赖项。您可以使用composer来提取它
composer需要guzzle http/guzzle
然后可以进行api调用
受保护函数创建(数组$data)
{
//记住导入use语句
//在顶部使用light\Support\Facades\Http
$response=Http::get('Http::/example.com');
//需要通过引发异常来停止进一步执行
//如果通过api调用验证失败
//除非($response->verified=true,419),否则中止;
返回用户::创建([
'companyid'=>$data['companyid'],
“电话号码”=>$data[“电话号码”],
'email'=>$data['email'],
'password'=>Hash::make($data['password']),
]);
}
Laravel docs:谢谢,Guzzle Http像
cUrl
一样吗?是的Guzzle是一个Http客户端,我正在测试部件需要停止进一步执行
并放置返回重定向()->路由('error-page')
并注释掉return User::create([])
但重定向不起作用,您知道如何正确重定向吗?您需要抛出异常以中断/停止执行。执行管道保证抛出异常以停止进一步执行。返回false或redirect之类的内容是行不通的。您忘记编写get inHttp:('Http::/example.com')之类的方法代码>
protected $fillable = [
'companyid', 'telephonenumber', 'email', 'password',
];
protected $hidden = [
'password', 'remember_token',
];
protected $casts = [
'email_verified_at' => 'datetime',
];