Controladors
Introducció
Recordem, que els controladors són els que han de contenir tota la lògica associada al processament d'una petició, encarregant-se de realitzar les consultes necessàries a la base de dades, de preparar les dades i de cridar a la vista corresponent amb aquestes dades.
En general, la forma recomanable de treballar serà associar les rutes a un mètode d'un controlador.
Això ens permetrà separar millor el codi i crear classes (controladors) que agrupen tota la funcionalitat d'un determinat recurs.
- Per exemple, podem crear un controlador per gestionar tota la lògica associada al control d'usuaris o qualsevol altre tipus de recurs.
Controlador bàsic
En Laravel, els controladors es guarden en fitxers PHP a la carpeta app/Http/Controllers. I aquí es poden organitzar en subcarpetes.
Normalment se'ls afegeix el sufix Controller, per exemple UserController.phpo MoviesController.php.
Codi d'un controlador bàsic:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class ArticlesController extends Controller
//El controlador extén la classe base Controller de Laravel
{
public function show($id)
{
return view('articles.show', ['id' => $id]);
}
}
?>
Cridar un controlador des del sistema de routing
Els controladors els cridarem, normalment, des del sistema de routing.
Indicarem el nom del controlador i l'acció (mètode) que s'ha d'executar.
<?php
Route::get('articles/{id}','ArticlesController@show');
?>
- En aquest exemple, la ruta té un paràmetre que serà passat al mètode
show()delArticlesController.
Crear nous controladors automàticament
Crear controladors és una tasca repetitiva en Laravel, per això existeix una comanda Artisan per crear-los automàticament.
php artisan make:controller ArticlesController
Aquesta comanda crearà el controlador ArticlesController dins de la carpeta app/Http/Controllers i el completarà amb el codi bàsic que hem vist abans.
Referències
- Llibre Lavarel 5 (Antonio Javier Gallego): Controladores