I'm using postman to test adding a record to database. Function works when all data is sent correctly (using POST method). When I try to to send invalid data in one of the fields postman tells me that
Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException: The POST method is not supported for this route. Supported methods: GET, HEAD
Which is odd as POST definitely works when data is correct and record gets added. I am looking to get proper error message and maybe customize it.
After reading answers to similar problems, I added get method for same route as error messaging uses get as I understand? But the error persist even with get method defined.
these are my routes
Route::post('trip', 'TripController@addTrip');
Route::get('trip', 'TripController@errorTrip');
php artisan route:list
shows that I have both GET and POST routes for 'trip', error remains
This is my function in laravel
public function addTrip(Request $request) {
$validated = $request->validate([
'date' => ['required','regex:/^(2020-08-([0-2][0-9]|30))$/'],
'user_id'=> ['required','regex:/^[0-9]*$/'],
'train_id'=> ['required','regex:/^(1|2)$/'],
'train_route_id'=> ['required', 'regex:/^(1|2)$/'],
'stop_from'=> ['required','regex:/^[1-8]$/'],
'stop_to'=> ['required','regex:/^[1-8]$/'],
]);
$data = request()->post();
DB::table('trips')->insert([
[
'user_id' => $data['user_id'],
'train_id' => $data['train_id'],
'train_route_id' => $data['train_route_id'],
'stop_from' => $data['stop_from'],
'stop_to' => $data['stop_to'],
'date' => $data['date'],
'created_at' => Carbon::now(),
'updated_at' => Carbon::now()
],
]);
}