Laravel bugfix: 404-not found ma la rotta esiste

Spread the love
Bugfix in Laravel per un errore HTTP 404 su una rotta esistente
Bugfix in Laravel per un errore HTTP 404 su una rotta esistente

Attività di bugfix n Laravel. Questo è il bug: ho definito una rotta nel file routes/web.php:

Route::get('/activities/start', 'ActivityController@start');

e ho definito il metodo start() nell’ActivityController

    /**
     * start - start the day first activity
     * @return bool
     */
    public function start()
    {
        //
        $activity = new Activity;
        $activity->order_id = Config::get('constants.START');
        $activity->description = Config::get('constants.START_TEXT');
        $activity->notes = '';

        $activity->save();

        return true;
    }

Il risultato è deludente e alquanto irritante, visto che ho seguito questa prassi – che ritengo corretta – fin dall’inizio:

La soluzione è semplice: il metodo resource() nella definzione delle rotte va collocato dopo le dichiarazioni puntuali delle singole rotte:

...
Route::get('/activities/start', 'ActivityController@start'); // 'ActivityController@start'
Route::get('/activities/report', 'ActivityController@reportForm'); //'ActivityController@reportForm'
// at the end...
Route::resource('/activities', 'ActivityController');

In sostanza devo riorganizzare i metodi perché c’è qualche conflitto con le rotte RESTful generate dal resource()e quelle da me definite “a mano”.

So far so good.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.