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

Spread the love
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 usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.