Dades d'entrada

Laravel facilita l'accés a les dades d'entrada de l'usuari a través de només uns pocs mètodes. No importa el tipus de petició que s'hagi realitzat (POST, GET, PUT, DELETE), si les dades són d'un formulari o si s'han afegit a la query string, en tots els casos s'obtindran de la mateixa forma.

Per aconseguir accés a aquests mètodes Laravel utilitza injecció de dependències. Això és simplement afegir la classe Request al constructor o mètode del controlador en què el necessitem. Laravel s'encarregarà d'injectar aquesta dependència ja inicialitzada i directament podrem utilitzar aquest paràmetre per obtenir les dades d'entrada.

A continuació s'inclou un exemple:

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Routing\Controller;

class UserController extends Controller
{
    public function store(Request $request)
    {
        $name = $request->input('name');

        //...
    }
}

En aquest exemple com es pot veure s'ha afegit la classe Request com a paràmetre al mètode store. Laravel automàticament s'encarrega d'injectar aquestes dependències per la qual cosa directament podem usar la variable $request per obtenir les dades d'entrada.

Si el mètode del controlador tingués més paràmetres simplement els haurem d'afegir a continuació de les dependències, per exemple:

public function edit(Request $request, $id)
{
    //...
}

Obtenir els valors d'entrada

Per obtenir el valor d'una variable d'entrada d'un formulari fem servir el mètode input() indicant el nom de la variable:

$name = $request->input('name');

// O simplemente....
$name = $request->name;

També podem especificar un valor per defecte com a segon paràmetre:

$name = $request->input('name', 'Pedro');

Obtenir dades agrupades

O també podem obtenir totes les dades d'entrada a la vegada (en una matriu) o només alguns d'ells:

// Obtenir tots els camps: 
$input = $request->all();

// Obtenir només els camps indicats: 
$input = $request->only('username', 'password');

// Obtenir tots excepte els indicats:
$input = $request->except('credit_card')

Podem obtenir totes les dades d'entrada a la vegada i assignar-los massivament a un objecte. Així s'assignaran automàticament cada una de les dades del formulari a les propietats de l'objecte sense haver-ho de fer una a una.

public function store (Request $request)
{
    $user = new User($request->all());
    $user->save();
}

JSON

Si l'entrada està codificada format JSON (per exemple quan ens comuniquem a través d'una API és bastant comú) també podrem accedir als diferents camps de les dades d'entrada de forma normal (amb els mètodes que hem vist)

Per exemple:

$name = $request->input('name');).

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

Autor: Sergi Coll

results matching ""

    No results matching ""