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() del ArticlesController.

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

#FpInfor #DawMp07 #DawMp07Uf3 #DawMp07Uf4 #Laravel #API

Autor: Sergi Coll

results matching ""

    No results matching ""