MethodNotAllowedHttpException zamiast błędu 404

MethodNotAllowedHttpException zamiast błędu 404
LI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 26
0

Mam kontroler, który zawiera tylko 2 metody:

Kopiuj
<?php

namespace App\Http\Controllers;

use App\Game;
use Illuminate\Http\Request;

class GamesController extends Controller
{
    public function edit(Game $game)
    {
        return 'Edit: ' . $game->title;
    }

    public function update(Request $request, Game $game)
    {
        return 'Update: ' . $game->title;
    }
}

w routes.php

Kopiuj
<?php

Route::get('/games/{games}/edit', 'GamesController@edit');
Route::patch('/games/{games}', 'GamesController@update');

i jak np. zrobię żądanie GET /games to wyświetla się strona 404, a jak zrobię:

  1. GET /games/create
  2. GET /games/1
  3. GET /games/createcokolwiek
  4. GET /games/1cokolwiek

to wyświetla się wyjątek

Kopiuj
Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException
No message

a chciałbym aby dla tych tras, które nie są zdefiniowane, została wyświetlona strona 404. Dlaczego dla /games działa, a dla pozostałych nie skoro w tablicy routes określiłem, że chcę mieć tylko 2 trasy?

Pipes
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 459
1

Route::patch czyli oczekujesz, że będziesz to robił PATCHem (raczej standardem jest PUT, ale co tam).
Jak zrobisz GET /sassa to też będzie 404 ;) Tam jest przypadek, że masz route, ale używasz złej metody, dlatego dostajesz piękny i precyzyjny wyjątek :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.