
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.
Commenti recenti