【问题标题】:Laravel 6 - Registration on submit returns registration formLaravel 6 - 在提交退货登记表上登记
【发布时间】:2019-09-28 11:39:12
【问题描述】:

我正在尝试使用 Laravel 6 中的 auth 内置功能。但是当我尝试注册时,页面返回相同的注册表单。当我调试时,我看到它进入了 RegisterController 中的验证器方法,而不是在 create 方法中。此外,客户端没有完成密码确认,所以如果密码不匹配,它仍然只是重新加载页面。

我真的不知道我的做法是否正确,但看起来 php artisan ui:auth 没有完全安装。

是否有可能因为我使用的是荷兰语变量名而无法正常工作?

注册控制器:

use RegistersUsers;

/**
 * Where to redirect users after registration.
 *
 * @var string
 */
protected $redirectTo = '/';


/**
 * Create a new controller instance.
 *
 * @return void
 */
public function __construct()
{
     $this->middleware('guest');

}

/**
 * Get a validator for an incoming registration request.
 *
 * @param  array  $data
 * @return \Illuminate\Contracts\Validation\Validator
 */
protected function validator(array $data)
{

    $returnvalue = Validator::make($data, [
        'voornaam' => ['required', 'string', 'max:255'],
        'achternaam' => ['required', 'string', 'max:255'],
        'gezin_id' => ['int'],
        'geboortedatum' => ['required', 'date'],
        'adres' => ['required', 'string', 'max:255'],
        'postcode' => ['required', 'string', 'max:8'],
        'gemeente' => ['required', 'string', 'max:255'],
        'land' => ['required', 'string', 'max:255'],
        'gsm' => ['required', 'string', 'max:12'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'min:8', 'confirmed'],
    ]);

    return ($returnvalue);
}

/**
 * Create a new user instance after a valid registration.
 *
 * @param  array  $data
 * @return \App\User
 */
protected function create(array $data)
{
    dd(request()->all());

    return User::create([
        'voornaam' => $data['voornaam'],
        'achternaam' => $data['achternaam'],
        'geboortedatum' => $data['geboortedatum'],
        'adres' => $data['adres'],
        'postcode' => $data['postcode'],
        'gemeente' => $data['gemeente'],
        'land' => $data['land'],
        'gsm' => $data['gsm'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
    ]);
}

register.blade.php

@section('content')
    <div class="container">
        <div class="row justify-content-center">
            <div class="col-md-8">
                <div class="card">
                    <div class="card-header">{{ __('Registreer') }}</div>

                    <div class="card-body">
                        <form method="POST" action="{{ route('register') }}">
                            @csrf

                            @if($errors->any())
                                <div class="row collapse">
                                    <ul class="alert-box warning radius">
                                        @foreach($errors->all() as $error)
                                            <li> {{ $error }} </li>
                                        @endforeach
                                    </ul>
                                </div>
                            @endif

                            <div class="form-group row">
                                <label for="voornaam"
                                       class="col-md-4 col-form-label text-md-right">{{ __('Voornaam') }}</label>

                                <div class="col-md-6">
                                    <input id="voornaam" type="text"
                                           class="form-control @error('voornaam') is-invalid @enderror" name="voornaam"
                                           value="{{ old('voornaam') }}" required autocomplete="voornaam" autofocus>

                                    @error('voornaam')
                                    <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">{{ __('Bevestig wachtwoord') }}</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">
                                        {{ __('Registreer') }}
                                    </button>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>
@endsection

更新

验证器值返回:

Validator {#282 ▼
  #translator: Translator {#280 ▶}
  #container: Application {#2 ▶}
  #presenceVerifier: DatabasePresenceVerifier {#281 ▶}
  #failedRules: []
  #messages: null
  #data: array:12 [▶]
  #initialRules: array:11 [▶]
  #rules: array:11 [▶]
  #currentRule: null
  #implicitAttributes: []
  #distinctValues: []
  #after: []
  +customMessages: []
  +fallbackMessages: []
  +customAttributes: []
  +customValues: []
  +extensions: []
  +replacers: []
  #fileRules: array:9 [▶]
  #implicitRules: array:10 [▶]
  #dependentRules: array:18 [▶]
  #sizeRules: array:8 [▶]
  #numericRules: array:2 [▶]
}

那么,看起来没有验证错误?

【问题讨论】:

  • 尝试composer require laravel/ui 然后php artisan ui vue --auth
  • 它与荷兰语无关,它们只是变量名
  • 我试过了,还是同样的问题。
  • 有没有可以看到Auth::routes();的地方?我认为 '/register' 路由只进入验证器方法。这可能吗?

标签: php laravel oop


【解决方案1】:

我发现这只是一个愚蠢的错误。

我使用了所有荷兰语变量,因此验证器无法再确认密码。唯一我仍然不明白的是为什么我没有收到任何错误。

【讨论】:

    猜你喜欢
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多