laravel

Laravel ressource controllere

Laravel ressource controllere
En ressourcecontroller bruges i Laravel til let at udføre CRUD-operationer. Når du opretter en ressourcecontroller ved hjælp af håndværkskommando fra terminalen, opretter den alle nødvendige metoder inde i controlleren relateret til CRUD-operationer. Det håndterer alle HTTP-anmodninger til applikationen og kræver en enkelt kodelinje til CRUD-ruter. Hvordan du kan oprette en ressourcecontroller og udføre CRUD-operationer i Laravel vises i denne vejledning.

Forudsætning:

Du vil kræve en tabel i databasen, hvor Laravel-projektet er forbundet. Du kan oprette en tabel ved at migrere kommandoen eller manuelt. Jeg har brugt brugere tabel i denne vejledning for at udføre CRUD-operationen ved hjælp af ressourcecontrolleren. Bordet er tomt nu. Tabellens struktur er vist nedenfor.

Opret en ressourcecontroller:

Kør følgende kommando fra terminalen for at oprette den ressourcecontroller, der hedder UserController.

$ php håndværkerfabrik: controller UserController - ressource

Hvis du åbner controlleren fra en hvilken som helst editor, vil du se, at følgende koder allerede er skrevet i controlleren. Syv metoder oprettes automatisk inde i controlleren til udførelse af CRUD-operationer.

navneområde App \ Http \ Controllers;
brug Illuminate \ Http \ Request;
klasse UserController udvider Controller

/ **
* Vis en liste over ressourcen.
*
* @return \ Illuminate \ Http \ Response
* /
offentligt funktionsindeks ()

//

/ **
* Vis formularen til oprettelse af en ny ressource.
*
* @return \ Illuminate \ Http \ Response
* /
offentlig funktion oprette ()

//

/ **
* Gem en nyoprettet ressource på lager.
*
* @param \ Illuminate \ Http \ Anmod om $ anmodning
* @return \ Illuminate \ Http \ Response
* /
offentlig funktionsbutik (Anmod $ anmodning)

//

/ **
* Vis den angivne ressource.
*
* @param int $ id
* @return \ Illuminate \ Http \ Response
* /
offentlig funktionsvisning ($ id)

//

/ **
* Vis formularen til redigering af den angivne ressource.
*
* @param int $ id
* @return \ Illuminate \ Http \ Response
* /
redigering af offentlig funktion ($ id)

//

/ **
* Opdater den angivne ressource i lager.
*
* @param \ Illuminate \ Http \ Anmod om $ anmodning
* @param int $ id
* @return \ Illuminate \ Http \ Response
* /
offentlig funktionsopdatering (Anmod $ anmodning, $ id)

//

/ **
* Fjern den angivne ressource fra lageret.
*
* @param int $ id
* @return \ Illuminate \ Http \ Response
* /
offentlig funktion ødelægge ($ id)

//

Ressourceruter:

Tilføj følgende rute til UserController at oprette ressourceruter i internettet.php fil.

Rute :: ressource ('brugere', 'UserController');

Kør nu følgende kommando fra terminalen for at kontrollere den aktuelle ruteliste fra web.php fil.

$ php håndværkerute: liste

Følgende ruteinformation genereres til brug af metoden Rute :: ressource (). syv ruter oprettes til at kalde syv metoder. Brugen af ​​disse ruter forklares senere i den næste del af denne vejledning.

Tilføj følgende linjer i begyndelsen af UserController.php fil til import af brugermodellen, Hash-tjeneste til hashing af adgangskoden og DB-service til databasehandlinger.

brug App \ User;
brug Hash;
brug DB

Indsæt post:

Rediger skab() metode til UserController med følgende kode. Her er et objekt fra Bruger model oprettes for at indsætte de nye poster. Efter tildeling af de obligatoriske værdier, Gemme() funktion kaldes for at indsætte den nye post i studerende bord.

offentlig funktion oprette ()

$ bruger = ny bruger;
$ bruger-> navn = 'fahmida';
$ user-> email = '[email protected]';
$ bruger-> adgangskode = Hash :: make ('12345');
prøve
$ bruger-> gem ();
ekko "Record er indsat";

fange (\ Illuminate \ Database \ QueryException $ e)
ekko "Duplicate entry";

Ruten til at ringe til skab() metode til UserController er 'brugere / opret''. Kør følgende URL fra browseren. Hvis posten indsættes korrekt, vises følgende output.

http: // localhost / laravelpro / public / users / create

Nu, hvis tjek tabellen fra databasen, får du følgende output.

Vis alle poster:

Rediger indeks() metode til UserController med følgende kode for at hente alle poster fra brugere tabel og vise værdierne for navn og e-mail.

offentligt funktionsindeks ()

$ brugere = DB :: vælg ('vælg * fra brugere');
foreach ($ brugere som $ bruger)

ekko "Navn: $ bruger-> navn";
ekko "
E-mail: $ bruger-> e-mail ";

Ruten til at ringe til indeks() metode til UserController er 'brugere''. Kør følgende URL fra browseren.

http: // localhost / laravelpro / public / brugere

Følgende output vises.

Vælg specifik post:

Rediger at vise() metode til UserController med følgende kode for at hente en post fra brugere tabel, der indeholder 1 i id felt og vise værdien af navn.

offentlig funktionsvisning ($ id)

$ bruger = DB :: vælg ('vælg * blandt brugere, hvor id ='.$ id);
ekko "Brugerens navn er". $ bruger [0] -> navn."
";

Ruten til at ringe til at vise() metode til UserController er 'brugere / id''. Kør følgende URL fra browseren.

http: // localhost / laravelpro / public / brugere / 1

Følgende output vises.

Opdater post:

To metoder er primært defineret i ressourcecontrolleren til at opdatere en databasepost. Disse er redigere() og opdater () hvor dataene for posten opdateres ved hjælp af en hvilken som helst redigeret form. Men der bruges ikke nogen redigeringsformular. Så kun den redigere() metoden bruges til at opdatere en bestemt registrering af studerende bord. Den aktuelle værdi af en bestemt post udskrives før og efter udførelse af opdateringsforespørgslen.

redigering af offentlig funktion ($ id)

$ bruger = DB :: vælg ('vælg * blandt brugere, hvor id ='.$ id);
ekko "Den aktuelle e-mail fra brugeren er". $ bruger [0] -> e-mail."
";
$ email = '[email protected]';
$ bruger = DB :: vælg ("Opdater brugere sæt e-mail = '$ email'where id =".$ id);
$ bruger = DB :: vælg ('vælg * blandt brugere, hvor id ='.$ id);
ekko "Brugerens e-mail efter opdatering er". $ bruger [0] -> e-mail;

Ruten til at ringe til redigere() metode til UserController er 'brugere / id / rediger''. Kør følgende URL fra browseren.

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

Følgende output vises.

Slet post:

Destroy () -metoden er defineret for at slette enhver post fra tabellen. Men ruten til sletning af posten går fra en anden metode. Her har jeg brugt at vise() metode til at oprette et hyperlink til sletning af den post, der tilføjes i slutningen af ​​metoden.

offentlig funktionsvisning ($ id)

$ bruger = DB :: vælg ('vælg * blandt brugere, hvor id ='.$ id);
ekko "Brugerens navn er". $ bruger [0] -> navn."
";
ekko "Slet";

Tilføj følgende kode i ødelægge() metode til at slette en bestemt post.

offentlig funktion ødelægge ($ id)

$ bruger = DB :: vælg ('Slet fra brugere hvor id ='.$ id);
ekko "Posten slettes";

Tilføj ruten i web.php fil til at ringe til ødelægge() metode.

Rute :: get ('/ users / delete / id', '[email protected]');

Efter at have klikket på sletlinket vises følgende output.

Konklusion:

Brugen af ​​ressourcestyringen og konceptet for ruteressourcen forklares detaljeret i denne vejledning ved hjælp af en CRUD-operation. Jeg håber, det vil hjælpe de nye Laravel-brugere med at implementere CRUD-operation let i deres projekt.

Mus Midterste museknap fungerer ikke i Windows 10
Midterste museknap fungerer ikke i Windows 10
Det midterste museknap hjælper dig med at rulle gennem lange websider og skærme med en masse data. Hvis det stopper, vil du ende med at bruge tastatur...
Mus Sådan ændres venstre og højre museknap på Windows 10-pc
Sådan ændres venstre og højre museknap på Windows 10-pc
Det er en ganske normal, at alle computermusenheder er ergonomisk designet til højrehåndede brugere. Men der er musenheder til rådighed, der er specie...
Mus Efterlig museklik ved at svæve ved hjælp af Clickless Mouse i Windows 10
Efterlig museklik ved at svæve ved hjælp af Clickless Mouse i Windows 10
Brug af en mus eller et tastatur i den forkerte kropsholdning af overdreven brug kan resultere i mange sundhedsmæssige problemer, herunder stamme, kar...