Laravel Resource Controllers

Laravel Resource Controllers
En ressurskontroller brukes i Laravel for å utføre CRUD -operasjoner enkelt. Når du oppretter en ressurskontroller ved hjelp av Artisan -kommandoen fra terminalen, vil den lage alle nødvendige metoder inne i kontrolleren relatert til CRUD -operasjoner. Den håndterer alle HTTP -forespørsler for applikasjonen og krever en enkelt kodelinje for CRUD -ruter. Hvordan du kan opprette en ressurskontroller og utføre CRUD -operasjoner i Laravel vises i denne opplæringen.

Forutsetning:

Du vil kreve en tabell i databasen der Laravel -prosjektet er tilkoblet. Du kan opprette en tabell ved å migrere kommandoen eller manuelt. Jeg har brukt Brukere Tabell i denne opplæringen for å utføre CRUD -operasjonen ved hjelp av ressurskontrolleren. Bordet er tomt nå. Strukturen på tabellen er vist nedenfor.

Opprett en ressurskontroller:

Kjør følgende kommando fra terminalen for å opprette ressurskontrolleren som er navngitt UserController.

$ PHP Artisan Make: Controller UserController -Resource

Hvis du åpner kontrolleren fra en hvilken som helst redigerer, vil du se følgende koder allerede er skrevet i kontrolleren. Syv metoder opprettes i kontrolleren automatisk for å utføre CRUD -operasjonene.

namespace -app \ http \ kontrollere;
Bruk Illuminate \ http \ forespørsel;
klasse UserController utvider kontrolleren

/**
* Vis en liste over ressursen.
*
* @return \ Illuminate \ http \ respons
*/
offentlig funksjonsindeks ()

//

/**
* Vis skjemaet for å lage en ny ressurs.
*
* @return \ Illuminate \ http \ respons
*/
offentlig funksjon Opprett ()

//

/**
* Oppbevar en nyopprettet ressurs i lagring.
*
* @param \ Illuminate \ http \ forespørsel $ Forespørsel
* @return \ Illuminate \ http \ respons
*/
public Function Store (forespørsel $ forespørsel)

//

/**
* Vis den spesifiserte ressursen.
*
* @param int $ id
* @return \ Illuminate \ http \ respons
*/
public Function Show ($ ID)

//

/**
* Vis skjemaet for redigering av den spesifiserte ressursen.
*
* @param int $ id
* @return \ Illuminate \ http \ respons
*/
public Function Edit ($ ID)

//

/**
* Oppdater den spesifiserte ressursen i lagring.
*
* @param \ Illuminate \ http \ forespørsel $ Forespørsel
* @param int $ id
* @return \ Illuminate \ http \ respons
*/
Offentlig funksjonsoppdatering (forespørsel $ forespørsel, $ ID)

//

/**
* Fjern den spesifiserte ressursen fra lagring.
*
* @param int $ id
* @return \ Illuminate \ http \ respons
*/
Offentlig funksjon Destroy ($ ID)

//

Ressursruter:

Legg til følgende rute for UserController å lage ressursruter i nettet.PHP fil.

Rute :: Ressurs ('brukere', 'UserController');

Kjør nå følgende kommando fra terminalen for å sjekke gjeldende ruteliste fra Web.PHP fil.

$ PHP Artisan Route: Liste

Følgende ruteinformasjon genereres for bruk av Route :: Resource () -metoden. Syv ruter er opprettet for å kalle syv metoder. Bruken av disse rutene blir forklart senere i neste del av denne opplæringen.

Legg til følgende linjer i begynnelsen av UserController.PHP fil for å importere brukermodellen, hash -tjenesten for hashing av passordet og DB -tjenesten for databaseoperasjoner.

Bruk app \ bruker;
bruk hash;
Bruk DB

Sett inn post:

Endre skape() Metode av UserController med følgende kode. Her, et objekt av Bruker Modell er opprettet for å sette inn de nye postene. Etter å ha tilordnet de obligatoriske verdiene, lagre() funksjon kalles for å sette inn den nye posten i studenter bord.

offentlig funksjon Opprett ()

$ bruker = ny bruker;
$ bruker-> name = 'fahmida';
$ bruker-> e-post = '[email protected] ';
$ user-> passord = hash :: make ('12345');
prøve
$ bruker-> lagre ();
Echo "-posten settes inn";

Catch (\ Illuminate \ Database \ queryException $ e)
ekko "duplikatoppføring";

Ruten for å ringe skape() Metode av UserController er 'Brukere/Opprett'. Kjør følgende URL fra nettleseren. Hvis posten er satt inn riktig, vil følgende utgang vises.

http: // localhost/laravelpro/public/brukere/opprette

Nå, hvis du sjekker tabellen fra databasen, vil du få følgende utdata.

Se alle poster:

Endre indeks () Metode av UserController med følgende kode for å hente alle poster fra Brukere tabell og vise verdiene til Navn og e -post.

offentlig funksjonsindeks ()

$ brukere = db :: velg ('velg * fra brukere');
Foreach ($ brukere som $ bruker)

ekko "navn: $ bruker-> navn";
ekko "
E-post: $ bruker-> e-post ";

Ruten for å ringe indeks () Metode av UserController er 'Brukere'. Kjør følgende URL fra nettleseren.

http: // localhost/laravelpro/offentlige/brukere

Følgende utgang vises.

Velg spesifikk post:

Endre forestilling() Metode av UserController med følgende kode for å hente en post fra Brukere Tabell som inneholder 1 i id felt og vise verdien av Navn.

public Function Show ($ ID)

$ bruker = db :: velg ('velg * fra brukere hvor id ='.$ id);
ekko "navnet på brukeren er". $ bruker [0]-> navn.""
";

Ruten for å ringe forestilling() Metode av UserController er 'Brukere/id'. Kjør følgende URL fra nettleseren.

http: // localhost/laravelpro/public/brukere/1

Følgende utgang vises.

Oppdateringspost:

To metoder er hovedsakelig definert i ressurskontrolleren for å oppdatere en databasepost. Disse er redigere() og Oppdater() Hvor dataene fra posten oppdateres ved hjelp av noe redigert skjema. Men ingen redigeringsskjema brukes her. Så bare redigere() metoden brukes til å oppdatere en bestemt oversikt over studenter bord. Gjeldende verdien av en bestemt post skrives ut før og etter å ha utført oppdateringsspørsmålet.

public Function Edit ($ ID)

$ bruker = db :: velg ('velg * fra brukere hvor id ='.$ id);
ekko "Den nåværende e -posten til brukeren er". $ bruker [0]-> e-post.""
";
$ e -post = '[email protected] ';
$ bruker = db :: velg ("Oppdater brukere set e -post = '$ e -postmelding av brukeren etter brukeren etter oppdatering er". $ bruker [0]-> e-post;

Ruten for å ringe redigere() Metode av UserController er 'Brukere/id/rediger'. Kjør følgende URL fra nettleseren.

http: // localhost/laravelpro/public/brukere/1/rediger

Følgende utgang vises.

Slett post:

Destroy () Metode er definert for å slette en hvilken som helst post fra tabellen. Men ruten for å slette posten passerer fra en annen metode. Her har jeg brukt forestilling() Metode for å lage en hyperkobling for å slette posten som legges til på slutten av metoden.

public Function Show ($ ID)

$ bruker = db :: velg ('velg * fra brukere hvor id ='.$ id);
ekko "navnet på brukeren er". $ bruker [0]-> navn.""
";
ekko ".URL ('/')."/Brukere/slett/".$ id."'> Slett";

Legg til følgende kode i ødelegge() Metode for å slette en bestemt post.

Offentlig funksjon Destroy ($ ID)

$ bruker = db :: velg ('slett fra brukere hvor id ='.$ id);
ekko "posten blir slettet";

Legg til ruten i Web.PHP fil for å ringe ødelegge() metode.

Rute :: get ('/brukere/delete/id', 'usercontroller@destroy');

Etter å ha klikket på slettekoblingen vises følgende utdata.

Konklusjon:

Bruken av ressurskontrolleren og konseptet med ruteressursen blir forklart i detalj i denne opplæringen ved å bruke en CRUD -operasjon. Jeg håper, det vil hjelpe de nye Laravel -brukerne til å implementere CRUD -operasjonen enkelt i prosjektet sitt.