Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 在哪里添加用户注册的自定义验证_Laravel - Fatal编程技术网

Laravel 在哪里添加用户注册的自定义验证

Laravel 在哪里添加用户注册的自定义验证,laravel,Laravel,我有一个自定义登记表,我需要(用户电话号码和公司id)以及电子邮件和密码。 电话号码和公司id将获得api调用,以验证其是否存在于comapny目录中。如果它通过了,那么我需要允许用户模型进行注册,但是如果它失败了,那么返回一个失败 问:在注册链中,我应该在哪里进行此api调用以允许/拒绝注册 我的\resources\views\auth\register.blade.php如下所示 <div class="container"> <div cla

我有一个自定义登记表,我需要(用户电话号码和公司id)以及电子邮件和密码。 电话号码和公司id将获得api调用,以验证其是否存在于comapny目录中。如果它通过了,那么我需要允许用户模型进行注册,但是如果它失败了,那么返回一个失败

问:在注册链中,我应该在哪里进行此api调用以允许/拒绝注册

我的
\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 in
Http:('Http::/example.com')之类的方法
protected $fillable = [
    'companyid', 'telephonenumber', 'email', 'password',
];

protected $hidden = [
    'password', 'remember_token',
];


protected $casts = [
    'email_verified_at' => 'datetime',
];