Level 23
if you are doing route model binding then $booking->schedule_id = $schedule; should be $booking->schedule_id = $schedule->id;
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
so using route model binding i am able to get this url : http://127.0.0.1:8000/schedule/1 is there anyway i can extract the id which in this case is one and insert it into a table in a database?
as at now this is what i have which is not working:
class BookingsController extends Controller {
//NB: i am passing/getting $schedule from the url, sort of
public function getScheduleId($schedule){
$booking = new Booking;
$booking->schedule_id = $schedule;
$booking->save();
}
public function store(){
$this->validate( request(), [
'lastName' => 'required',
'firstName' => 'required',
'email' => 'required',
'mobilenumber' => 'required',
'additionalId' => 'required',
'idNumber' => 'required'
]);
Booking::create([
'schedule_id' => request($schedule),
'lastname' => request('lastName'),
'firstname' => request('firstName'),
'email' => request('email'),
'mobilenumber' => request('mobilenumber'),
'id_type' => request('additionalId'),
'id_number' => request('idNumber')
]);
}
}
Form in page where they are creating a booking
<form method='POST' action="/schedule/{{$schedule->id}}">
{{csrf_field}}
// input fields
</form>
routes/web.php
Route::post('schedule/{schedule}', 'BookingController@store');
class BookingController extends Controller {
public function store(Schedule $schedule){ // The Schedule type hint is required for route model binding to work.
$this->validate( request(), [
'lastName' => 'required',
'firstName' => 'required',
'email' => 'required',
'mobilenumber' => 'required',
'additionalId' => 'required',
'idNumber' => 'required'
]);
Booking::create([
'schedule_id' => $schedule->id,
'lastname' => request('lastName'),
'firstname' => request('firstName'),
'email' => request('email'),
'mobilenumber' => request('mobilenumber'),
'id_type' => request('additionalId'),
'id_number' => request('idNumber')
]);
}
}
Please or to participate in this conversation.