Controller

I controller sono le “azioni” che esegue l’applicazione e sono strettamente collegati alle route; il concetto è molto simile a quello di Magento.

I controller sono nella cartella app\Http\Controllers e si possono creare manualmente oppure tramite comando shell.

Un controller si chiamerà sempre NomepluraleController.php; il camel case è necessario.

Per la creazione tramite comando shell bisogna scrivere esempio php artisan make:controller PhotosController. Aggiungendo il parametro --resource al fondo all’interno del controller saranno aggiunti delle funzioni standard:

  • index: mostra elenco entità
  • create: crea nuova entità
  • store
  • show: mostra singola entità
  • edit
  • update
  • destroy: cancella entità

Le funzioni store, edit e update francamente mi sembrano molto simili…non credo servano tutte; la differenza è spiegata nella sezione 14 lezione 99 del corso.

Nel route routes\web.php aggiungendo Route::resource('photos', 'PhotosController'); in automatico saranno mappati tutti i metodi presenti nel controller; richiamando la lista delle route con php artisan route:list il risultato sarà come quello sotto.


GET|HEAD  | photos                | photos.index    | App\Http\Controllers\PhotosController@index
POST      | photos                | photos.store    | App\Http\Controllers\PhotosController@store
GET|HEAD  | photos/create         | photos.create   | App\Http\Controllers\PhotosController@create
GET|HEAD  | photos/{photo}        | photos.show     | App\Http\Controllers\PhotosController@show
PUT|PATCH | photos/{photo}        | photos.update   | App\Http\Controllers\PhotosController@update
DELETE    | photos/{photo}        | photos.destroy  | App\Http\Controllers\PhotosController@destroy
GET|HEAD  | photos/{photo}/edit   | photos.edit     | App\Http\Controllers\PhotosController@edit