Laravel bugfix: Errore 404 – not found ma la rotta esiste

Laravel bugfix  per un errore HTTP 404 su una rotta esistente
Laravel bugfix per un errore HTTP 404 su una rotta esistente

Laravel bugfix: sistemiamo questo 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 definizioni delle singole rotte nel file routes/web.php:

...
Route::get('/activities/start', 'ActivityController@start');
Route::get('/activities/report', '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”.

Questa breve attività di Laravel bugfix è stata molto istruttiva.

A volte i file crescono senza troppi controlli, soprattutto mentre si impara un nuovo strumento coem Laravel o Grails, ma è bene fare spesso il punto dell’ordine e della pulizia all’interno dei file.

Altri articoli su Laravel bugfix

Problemi con la libreria Ixudra / Curl

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.