Редактирана е формуляра за удостоверяване извън кутията в Laravel, но той няма да се изпрати в базата данни сега

Настроих ново приложение в laravel и създадох удостоверяването извън кутията с php artisan make:auth. Трябваше да добавя някои допълнителни полета към формулярите и следвах урок (който дори не мога да намеря отново) и повторно стартирах миграциите. Новите полета отидоха в базата данни и всичко изглежда добре. Въпреки това, когато се опитам да се регистрирам, формулярът не се изпраща към базата данни, не пренасочва и много от полетата се изчистват.

Намерих една статия в стека, в която се споменава, че моят изглед на формуляр може да е объркан с бутона за регистриране, така че се уверих, че всичките ми div са затворени и какво ли още не, но това не го поправя. Също така си помислих, че проблемът може да е свързан с моите радио бутони и квадратчета за отметка, така че ги премахнах, за да го тествам без тях, и пак имах същия проблем.

моят регистрационен контролер:

<?php

namespace App\Http\Controllers\Auth;

use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;

class RegisterController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Register Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles the registration of new users as well as their
    | validation and creation. By default this controller uses a trait to
    | provide this functionality without requiring any additional code.
    |
    */

    use RegistersUsers;

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

    /**
     * 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)
    {
        return Validator::make($data, [
            'name' => ['required', 'string', 'max:255'],
            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
            'phone' => ['required', 'string', 'max:15'],
            'program' => ['required'],
            'disability'=>['string', 'max:255'],
            'terms' => ['required'],
            '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'],
            'phone' => $data['phone'],
            'program' =>$data['program'],
            'disability'=>$data['disability'],
            'terms' => $data['terms'],
            'password'=> Hash::make($data['password']),
        ]);

    }
}

по-долу е моят формуляр (съжалявам, че споделям всичко)

<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="name" class="col-md-4 col-form-label text-md-right">{{ __('Name') }}</label>
                            <div class="col-md-6">
                                <input id="name" type="text" class="form-control @error('name') is-invalid @enderror"
                                    name="name" value="{{ old('name') }}" required autocomplete="name" autofocus>

                                @error('name')
                                <span class="invalid-feedback" role="alert">
                                    <strong>{{ $message }}</strong>
                                </span>
                                @enderror
                            </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="phone number"
                                    class="col-md-4 col-form-label text-md-right">{{ __('Phone Number') }}</label>
                            <div class="col-md-6">
                                    <input id="phone number" type="text"
                                        class="form-control @error('phone number') is-invalid @enderror"
                                        name="phone number" value="{{ old('phone') }}" required autocomplete="phone"
                                        autofocus>

                                    @error('phone')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                    @enderror
                            </div>
                        </div>
                        <div class="form-group row">
                                <label for="program"
                                    class="col-md-4 col-form-label text-md-right">{{ __('Program') }}</label>
                                <div class="col-md-6 ">
                                    <div class="form-inline"><input id="veterans" type="radio" class="form-inline"
                                            name="program" value="Veteran Program ($35.00/month)"
                                            {{ (old('program')== 'veteran') ? 'checked':''}}>
                                        Veteran Program ($35.00/month
                                    </div>
                                    <div class="form-inline"><input id="masters" type="radio" class="form-inline"
                                            name="program" value="Masters Program ($50.00/month)"
                                            {{ (old('program')== 'masters') ? 'checked':''}}>
                                        Masters Program ($50.00/month)
                                    </div>
                                    <div class="form-inline"><input id="adaptive" type="radio" class="form-inline"
                                            name="program" value="Non-Veteran Adaptive Program ($50.00/month)"
                                            {{ (old('program')== 'adaptive') ? 'checked':''}}> Masters Adaptive Program
                                        ($50.00/month)
                                    </div>

                                    @error('program')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                    @enderror
                                </div>
                        </div>
                        <div class="form-group row">
                                <label for="type"
                                    class="col-md-4 col-form-label text-md-right">{{ __('Disability Type (If applicable)') }}</label>
                                <div class="col-md-6">
                                    <input id="disability" type="text" class="form-control" name="disability"
                                        value="{{ old('disability') }}" autofocus>
                                </div>
                        </div>
                        <div class="form-group row">
                                <label for="waiver"
                                    class="col-md-4 col-form-label text-md-right">{{ __('Terms and Conditions') }}</label>
                                <div class="col-md-6 ">
                                    <div class="form-inline"><input id="waiver" type="checkbox" class="form-inline"
                                            name="waiver" value="waiver" {{ (old('waiver')== '1') ? 'checked':''}}> By
                                        checking this box, I agree to the ORCA terms & conditions. </div>
                                    @error('waiver')
                                    <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">
                                <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>

Очаквам да създаде акаунта, да влезе и да пренасочи. За съжаление не извежда никакви съобщения за грешка, което затруднява отстраняването на неизправности.


person Jennifer Gibson    schedule 12.06.2019    source източник


Отговори (2)


Опитах се да коментирам, но все още не мога, първо, моля, проверете имената на телефона и въведените условия, защото за въвеждането на телефона сте поставили „телефонен номер“ в атрибута на името, а за въвеждането на условията сте поставили „отказ“ в атрибут име,

можете ли да споделите целия контролер след това

person Mehdi Aroui    schedule 12.06.2019
comment
Редактирах публикацията по-горе, за да покажа целия регистрационен контролер. Ще проверя и имената. - person Jennifer Gibson; 13.06.2019
comment
изглежда добре, надявам се, че сте променили потребителския модел в конфигурационния файл auth.php - person Mehdi Aroui; 13.06.2019

Полето за инвалидност трябваше да се актуализира, за да може да бъде празно. Добавено е „nullable“ към функцията за валидиране на регистрационния контролер и тя работи. Също така трябва да актуализирате тази колона в миграцията, така че базата данни да няма грешки.

person Jennifer Gibson    schedule 13.06.2019