I'm trying to assign licence categories with expiry date input for each category to a user.
I'm working with Laravel 8 and Bootstrap 5.
Up to assigning categories to a user I'm ok.
The lack of knowledge starts with saving that expiry date to additional column in pivot table.
So here's my form section where I collect necessary information:
<div class="mb-1"><strong>Assign user's driving licence categories:</strong></div>
@foreach($categories as $category)
<div class="input-group mb-3">
<div class="input-group-text" style="width: 6ch !important;">{{$category->name}}</div>
<div class="input-group-text">
<input class="form-check-input" type="checkbox" name="categories[]" value="{{$category->id}}">
</div>
<div class="input-group-text">Expiry date</div>
<input class="form-control" type="date" name="expiry_date[]">
</div>
@endforeach
And Controller:
public function store(Request $request)
{
$request->validate([
'first_name' => 'required',
'last_name' => 'required',
'email' => 'required',
'roles' => 'required',
'categories' => 'required',
'expiry_date' => 'required_with:categories'
]);
$user = User::create($request->except(['roles', 'categories', 'expiry_date']))
->drivingLicenceCategory()->sync($request->categories);
return redirect()->route('users.index')->with('success', 'User added successfully.');
}
I have no idea how to assign expiry date to each category.
Also what if category of id = 1 is not selected?
The second array of expiry_date is returning null in position [0] :(
Hope someone can help and thank you for your time spent helping me :)