Reputation: 107
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
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