MethodNotAllowedHttpException zamiast błędu 404

0

Mam kontroler, który zawiera tylko 2 metody:

<?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

<?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

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?

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 :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1