valdimiro einstein
valdimiro einstein

Reputation: 107

Form not saving data in database

I'm new to the subject, after logging into the website, I created a view with a modal that contains a registration form for a new user, after filling in all my fields and clicking save, I'm redirected to the index without anything happening, I don't get any error and the data is not recorded in the database

index.blade.php

<div class="tab-content">
          <!-- Panel 17 -->
          <div class="tab-pane fade in show active" id="panel17" role="tabpanel">
            <form method="POST" action="{{ route('storeuser') }}">
              @csrf
            <!-- Body -->
            <div class="modal-body mb-1">
              
              <div class="md-form form-sm">
                <i class="fas fa-envelope prefix"></i>
                <input type="text" id="name" class="form-control form-control-sm @error('name') is-invalid @enderror" name="name" value="{{ old('name') }}" autofocus>
                <label for="name">{{ trans('labels.name')}}</label>
                @error('name')
                    <span class="invalid-feedback" role="alert">
                        <strong>{{ $message }}</strong>
                    </span>
                @enderror
              </div>
              <div class="md-form form-sm">
                <i class="fas fa-envelope prefix"></i>
                <input type="email" id="email" class="form-control form-control-sm @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" >
                <label for="email">{{ trans('labels.email')}}</label>
              </div>
              <div class="md-form form-sm">
                <i class="fas fa-envelope prefix"></i>
                <input placeholder="{{ trans('labels.birthday')}}" type="text" id="date-picker-example" class="form-control datepicker picker__input" readonly="" aria-haspopup="true" aria-expanded="false" aria-readonly="false" aria-owns="date-picker-example_root">
              </div>

              <div class="md-form form-sm">
                <select class="mdb-select md-form">
                  <option value="" disabled selected>{{ trans('labels.role')}}</option>
                  @foreach ($roles as $key => $role)
                    <option value="{{ $role->name }}" id="roles">{{ $role->name }}</option>
                  @endforeach
                </select>
              </div>
              
              <div class="md-form form-sm">
                <i class="fas fa-lock prefix"></i>
                <input type="password" id="password" class="form-control form-control-sm @error('password') is-invalid @enderror" name="password">
                <label for="password">{{ trans('labels.password')}}</label>
                @error('password')
                    <span class="invalid-feedback" role="alert">
                        <strong>{{ $message }}</strong>
                    </span>
                @enderror
              </div>
              <div class="md-form form-sm">
                <i class="fas fa-lock prefix"></i>
                <input id="password-confirm" type="password" class="form-control form-control-sm" name="password_confirmation">
                <label for="confpassword">{{ trans('labels.confirm-password')}}</label>
              </div>
              <div class="text-center mt-2">
                <button type="submit" class="btn btn-info">{{ trans('labels.add')}} <i class="fas fa-sign-in-alt ml-1"></i></button>
              </div>
            </div>
          </form>
          </div>
  
        </div>

UserController.php


public function store(Request $request)
    {
        $this->validate($request, [
            'name' => 'required',
            'email' => 'required|email|unique:users,email',
            'password' => 'required|same:confirm-password',
            'roles' => 'required'
        ]);
    
        $input = $request->all();
        $input['password'] = Hash::make($input['password']);
    
        $user = User::create($input);
        $user->assignRole($request->input('roles'));
    
        return redirect()->route('back.users.index')
                        ->with('success','User created successfully');
    }

User Model

use HasFactory, Notifiable, HasRoles;

    protected $fillable = [
        'name',
        'surname',
        'email',
        'phone',
        'address',
        'password',

    ];

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

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

Route

Route::group(['namespace' => 'back', 'middleware' => ['auth']], function() {
    Route::get('/users', [UserController::class, 'index'])->name('users');
    Route::post('/users', [UserController::class, 'store'])->name('storeuser');
});

Upvotes: 1

Views: 81

Answers (1)

hasan afsharnia
hasan afsharnia

Reputation: 26

<select class="mdb-select md-form" name="role" id="role">
   <option value="" disabled selected>{{ trans('labels.role')}}</option>
   @foreach ($roles as $key => $role)
       <option value="{{ $role->id }}" >{{ $role->name }}</option>
   @endforeach
</select>

Upvotes: 1

Related Questions