laravel

Laravel Resource Controllers

Laravel Resource Controllers
En resurskontroll används i Laravel för att enkelt utföra CRUD-operationer. När du skapar en resurskontroll med hjälp av hantverkarkommandon från terminalen kommer den att skapa alla nödvändiga metoder inuti styrenheten relaterade till CRUD-operationer. Det hanterar alla HTTP-förfrågningar för applikationen och kräver en enda kodrad för CRUD-rutter. Hur du kan skapa en resurskontroll och utföra CRUD-operationer i Laravel visas i denna handledning.

Nödvändig förutsättning:

Du behöver en tabell i databasen där Laravel-projektet är anslutet. Du kan skapa en tabell med migreringskommandot eller manuellt. Jag har använt användare i denna handledning för att utföra CRUD-operationen med hjälp av resurskontrollen. Bordet är tomt nu. Tabellens struktur visas nedan.

Skapa en resurskontroll:

Kör följande kommando från terminalen för att skapa den resursstyrenhet som heter UserController.

$ php artisan make: controller UserController --resource

Om du öppnar styrenheten från någon redaktör ser du att följande koder redan är skrivna i styrenheten. Sju metoder skapas automatiskt i styrenheten för att utföra CRUD-operationer.

namnrymd App \ Http \ Controllers;
använd Illuminate \ Http \ Request;
klass UserController utökar Controller

/ **
* Visa en lista över resursen.
*
* @return \ Illuminate \ Http \ Response
* /
offentligt funktionsindex ()

//

/ **
* Visa formuläret för att skapa en ny resurs.
*
* @return \ Illuminate \ Http \ Response
* /
offentlig funktion skapa ()

//

/ **
* Lagra en nyskapad resurs i lagring.
*
* @param \ Illuminate \ Http \ Begär $ begäran
* @return \ Illuminate \ Http \ Response
* /
public function store (Begär $ begäran)

//

/ **
* Visa den angivna resursen.
*
* @param int $ id
* @return \ Illuminate \ Http \ Response
* /
public function show ($ id)

//

/ **
* Visa formuläret för redigering av den angivna resursen.
*
* @param int $ id
* @return \ Illuminate \ Http \ Response
* /
public function edit ($ id)

//

/ **
* Uppdatera den angivna resursen i lagring.
*
* @param \ Illuminate \ Http \ Begär $ begäran
* @param int $ id
* @return \ Illuminate \ Http \ Response
* /
offentlig funktionsuppdatering (Begär $ begäran, $ id)

//

/ **
* Ta bort den angivna resursen från lagring.
*
* @param int $ id
* @return \ Illuminate \ Http \ Response
* /
offentlig funktion förstör ($ id)

//

Resursvägar:

Lägg till följande rutt för UserController för att skapa resursvägar i webben.php fil.

Rutt :: resurs ('användare', 'UserController');

Kör nu följande kommando från terminalen för att kontrollera den aktuella ruttlistan från webb.php fil.

$ php hantverksrutt: lista

Följande ruttinformation genereras för att använda metoden Rutt :: resurs (). sju rutter skapas för att anropa sju metoder. Användningen av dessa rutter förklaras senare i nästa del av denna handledning.

Lägg till följande rader i början av UserController.php fil för att importera användarmodellen, Hash-tjänsten för hashing av lösenordet och DB-tjänsten för databasåtgärder.

använd App \ User;
använd Hash;
använd DB

Infoga post:

Ändra skapa() metod av UserController med följande kod. Här, ett objekt av Användare modellen skapas för att infoga de nya posterna. Efter tilldelning av obligatoriska värden, spara() funktionen kallas för att infoga den nya posten i studenter tabell.

offentlig funktion skapa ()

$ användare = ny användare;
$ user-> name = 'fahmida';
$ user-> email = '[email protected]';
$ user-> password = Hash :: make ('12345');
Prova
$ användare-> spara ();
eko "Posten har infogats";

fånga (\ Illuminate \ Database \ QueryException $ e)
eko "Duplicate entry";

Rutten för att ringa skapa() metod av UserController är 'användare / skapa''. Kör följande URL från webbläsaren. Om posten sätts in ordentligt visas följande utdata.

http: // localhost / laravelpro / public / användare / skapa

Om du nu kontrollerar tabellen från databasen får du följande resultat.

Visa alla poster:

Ändra index() metod av UserController med följande kod för att hämta alla poster från användare tabell och visa värdena för namn och e-post.

offentligt funktionsindex ()

$ användare = DB :: välj ('välj * från användare');
foreach ($ användare som $ användare)

eko "Namn: $ user-> name";
eko "
E-post: $ user-> email ";

Rutten att ringa till index() metod av UserController är 'användare''. Kör följande URL från webbläsaren.

http: // localhost / laravelpro / public / användare

Följande utdata visas.

Välj specifik post:

Ändra show() metod av UserController med följande kod för att hämta en post från användare tabell som innehåller 1 i id fält och visa värdet på namn.

public function show ($ id)

$ user = DB :: select ('select * från användare där id ='.$ id);
eko "Namnet på användaren är". $ användare [0] -> namn."
";

Rutten att ringa till show() metod av UserController är 'användare / id''. Kör följande URL från webbläsaren.

http: // localhost / laravelpro / public / users / 1

Följande utdata visas.

Uppdatera post:

Två metoder definieras huvudsakligen i resurskontrollen för att uppdatera en databaspost. Dessa är redigera() och uppdatering() där uppgifterna i posten uppdateras med hjälp av vilket redigerat formulär som helst. Men inget redigeringsformulär används här. Så, bara redigera() metoden används för att uppdatera en viss post av studenter tabell. Det aktuella värdet för en viss post skrivs ut före och efter körning av uppdateringsfrågan.

public function edit ($ id)

$ user = DB :: select ('select * från användare där id ='.$ id);
eko "Den aktuella e-postadressen för användaren är". $ användare [0] -> e-post."
";
$ email = '[email protected]';
$ user = DB :: select ("Uppdatera användare ställa in e-post = '$ email'where id =".$ id);
$ user = DB :: select ('select * från användare där id ='.$ id);
eko "Användarens e-postmeddelande efter uppdateringen är". $ användare [0] -> e-post;

Rutten att ringa till redigera() metod av UserController är 'användare / id / redigera''. Kör följande URL från webbläsaren.

http: // localhost / laravelpro / public / användare / 1 / redigera

Följande utdata visas.

Radera post:

förstör () -metoden definieras för att ta bort alla poster från tabellen. Men vägen för att radera posten går från en annan metod. Här har jag använt show() metod för att skapa en hyperlänk för att radera posten som läggs till i slutet av metoden.

public function show ($ id)

$ user = DB :: select ('select * från användare där id ='.$ id);
eko "Namnet på användaren är". $ användare [0] -> namn."
";
eko "Radera";

Lägg till följande kod i förstöra() metod för att radera en viss post.

offentlig funktion förstör ($ id)

$ user = DB :: select ('Ta bort från användare där id ='.$ id);
eko "Posten raderas";

Lägg till rutten i webb.php fil för att ringa förstöra() metod.

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

Efter att ha klickat på radera länken visas följande utdata.

Slutsats:

Användningen av resurskontrollen och konceptet för ruttresursen förklaras i detalj i denna handledning med hjälp av en CRUD-operation. Jag hoppas att det kommer att hjälpa de nya Laravel-användarna att implementera CRUD-operation enkelt i sitt projekt.

Hur man använder AutoKey för att automatisera Linux-spel
AutoKey är ett verktyg för desktopautomatisering för Linux och X11, programmerat i Python 3, GTK och Qt. Med hjälp av dess skript och MACRO-funktional...
Hur man visar FPS-räknare i Linux-spel
Linux-spel fick ett stort tryck när Valve tillkännagav Linux-stöd för Steam-klient och deras spel 2012. Sedan dess har många AAA- och indiespel tagit ...
Hur man laddar ner och spelar Sid Meier's Civilization VI på Linux
Introduktion till spelet Civilization 6 är ett modernt intag av det klassiska konceptet som introducerades i serien Age of Empires-spel. Idén var gans...