Kontrolery zasobów laravel

Kontrolery zasobów laravel
Kontroler zasobów jest używany w Laravel do łatwego wykonywania operacji CRUD. Kiedy utworzysz kontroler zasobów za pomocą polecenia Artisan z terminalu, utworzy on wszystkie niezbędne metody wewnątrz kontrolera związanego z operacjami CRUD. Obsługuje wszystkie żądania HTTP dotyczące aplikacji i wymaga pojedynczego wiersza kodu dla tras crud. Jak możesz utworzyć kontroler zasobów i wykonywać operacje CRUD w Laravel, są pokazane w tym samouczku.

Warunek wstępny:

Będziesz potrzebował tabeli w bazie danych, w której podłączony jest projekt Laravel. Możesz utworzyć tabelę przez migrację polecenia lub ręcznie. Użyłem użytkownicy Tabela w tym samouczku, aby wykonać działanie CRUD za pomocą kontrolera zasobów. Stół jest teraz pusty. Struktura tabeli pokazano poniżej.

Utwórz kontroler zasobów:

Uruchom następujące polecenie z terminalu, aby utworzyć nazywany kontroler zasobów Usercontroller.

$ PHP Artisan Make: kontroler UserController -Resource

Jeśli otworzysz kontroler od dowolnego edytora, zobaczysz, że następujące kody są już zapisane w kontrolerze. Siedem metod jest tworzonych w kontrolerze automatycznie do wykonywania operacji CRUD.

przestrzeń nazw app \ http \ controllers;
Użyj Illuminate \ http \ żądanie;
Klasa UserController rozszerza kontroler

/**
* Wyświetl listę zasobu.
*
* @return \ iluminate \ http \ odpowiedź
*/
indeks funkcji publicznej ()

//

/**
* Pokaż formularz tworzenia nowego zasobu.
*
* @return \ iluminate \ http \ odpowiedź
*/
Funkcja publiczna Utwórz ()

//

/**
* Przechowuj nowo utworzony zasób w pamięci.
*
* @param \ iluminate \ http \ żądanie $ żądanie
* @return \ iluminate \ http \ odpowiedź
*/
sklep z funkcjami publicznymi (żądanie $ żądanie)

//

/**
* Wyświetl określony zasób.
*
* @param int $ id
* @return \ iluminate \ http \ odpowiedź
*/
Pokaż funkcję publiczną ($ id)

//

/**
* Pokaż formularz edytowania określonego zasobu.
*
* @param int $ id
* @return \ iluminate \ http \ odpowiedź
*/
Edycja funkcji publicznej ($ id)

//

/**
* Zaktualizuj określony zasób w pamięci.
*
* @param \ iluminate \ http \ żądanie $ żądanie
* @param int $ id
* @return \ iluminate \ http \ odpowiedź
*/
Aktualizacja funkcji publicznej (żądanie $ żądanie, $ id)

//

/**
* Usuń określony zasób z pamięci.
*
* @param int $ id
* @return \ iluminate \ http \ odpowiedź
*/
Funkcja publiczna niszczy ($ id)

//

Drogi zasobów:

Dodaj następującą trasę dla Usercontroller Aby utworzyć trasy zasobów sieć.php plik.

Trasa :: „Użytkownicy”, „UserController”);

Teraz uruchom następujące polecenie z terminala, aby sprawdzić bieżącą listę tras z sieć.php plik.

$ PHP Artisan Route: Lista

Poniższe informacje o trasie są generowane do użycia metody trasy :: Resource (). Do wywołania siedmiu metod powstaje siedem tras. Zastosowania tych tras są wyjaśnione później w następnej części tego samouczka.

Dodaj następujące linie na początku Usercontroller.php Plik do importowania modelu użytkownika, usługi HASH do mieszania hasła i usługi DB dla operacji bazy danych.

Użyj App \ User;
Użyj skrótu;
Użyj db

Wstaw rekord:

Zmodyfikuj tworzyć() metoda Usercontroller z następującym kodem. Tutaj obiekt Użytkownik Model jest tworzony, aby wstawić nowe rekordy. Po przypisaniu obowiązkowych wartości, ratować() funkcja jest wywoływana w celu wstawienia nowego rekordu do studenci tabela.

Funkcja publiczna Utwórz ()

$ user = nowy użytkownik;
$ user-> name = 'fahmida';
$ user-> e-mail = '[email protected] ';
$ user-> hasło = Hash :: Make („12345”);
próbować
$ user-> save ();
Echo „Wkłada się rekord”;

Catch (\ Illuminate \ baza danych \ queryException $ e)
echo „Duplicate wpis”;

Trasa, aby zadzwonić tworzyć() metoda Usercontroller Jest 'Użytkownicy/Utwórz'. Uruchom następujący adres URL z przeglądarki. Jeśli rekord zostanie poprawnie wstawiony, pojawi się następujące dane wyjściowe.

http: // localhost/laravelpro/public/Users/Create

Teraz, jeśli sprawdź tabelę z bazy danych, otrzymasz następujące dane wyjściowe.

Zobacz wszystkie rekordy:

Zmodyfikuj indeks() metoda Usercontroller z następującym kodem, aby pobrać wszystkie rekordy z użytkownicy tabela i wyświetl wartości nazwa I e-mail.

indeks funkcji publicznej ()

$ Users = db :: „Wybierz * od użytkowników”);
FOREACH ($ Użytkownicy jako $ użytkownik)

echo "Nazwa: $ user-> nazwa";
Echo "
E-mail: $ user-> e-mail ”;

Trasa, aby zadzwonić indeks() metoda Usercontroller Jest 'użytkownicy'. Uruchom następujący adres URL z przeglądarki.

http: // localhost/laravelpro/public/użytkownicy

Pojawi się następujące dane wyjściowe.

Wybierz konkretny rekord:

Zmodyfikuj pokazywać() metoda Usercontroller z następującym kodem do pobrania rekordu z użytkownicy Tabela zawierająca 1 w ID pole i wyświetlić wartość nazwa.

Pokaż funkcję publiczną ($ id)

$ user = db :: „Wybierz * od użytkowników gdzie id = '.$ id);
echo „nazwa użytkownika to”. $ User [0]-> Nazwa."
";

Trasa, aby zadzwonić pokazywać() metoda Usercontroller Jest 'użytkownicy/id'. Uruchom następujący adres URL z przeglądarki.

http: // localhost/laravelpro/public/Users/1

Pojawi się następujące dane wyjściowe.

Aktualizacja rekord:

Dwie metody są głównie zdefiniowane w kontrolerze zasobów w celu aktualizacji rekordu bazy danych. To są edytować() I aktualizacja() gdzie dane z aktualizacji rekordu za pomocą dowolnego edytowanego formularza. Ale nie jest tu używany formularz edycji. Więc tylko edytować() Metoda służy do aktualizacji konkretnego rekordu studenci tabela. Bieżąca wartość konkretnego rekordu jest drukowana przed i po wykonaniu zapytania aktualizacji.

Edycja funkcji publicznej ($ id)

$ user = db :: „Wybierz * od użytkowników gdzie id = '.$ id);
echo „aktualny e -mail użytkownika to”. $ użytkownik [0]-> e-mail."
";
$ e -mail = '[email protected] ';
$ user = db :: „Użytkownicy aktualizacja Ustaw e -mail = '$ e -mail” Wherethe e -mail użytkownika po aktualizacji ”. $ użytkownik [0]-> e-mail;

Trasa, aby zadzwonić edytować() metoda Usercontroller Jest 'użytkownicy/id/edytuj'. Uruchom następujący adres URL z przeglądarki.

http: // localhost/laravelpro/public/Users/1/edytuj

Pojawi się następujące dane wyjściowe.

Usuń rekord:

Metoda niszczy () jest zdefiniowana w celu usunięcia dowolnego rekordu z tabeli. Ale trasa do usunięcia rekordu przechodzi z innej metody. Tutaj użyłem pokazywać() metoda utworzenia hiperłącza do usunięcia rekordu dodanego na końcu metody.

Pokaż funkcję publiczną ($ id)

$ user = db :: „Wybierz * od użytkowników gdzie id = '.$ id);
echo „nazwa użytkownika to”. $ User [0]-> Nazwa."
";
Echo ".URL ('/').„/Użytkownicy/Usuń/”.$ id."'> Delete";

Dodaj następujący kod w zniszczyć() metoda usuwania konkretnego rekordu.

Funkcja publiczna niszczy ($ id)

$ user = db :: „Usuń od użytkowników, gdzie id = '.$ id);
echo „Rekord jest usunięty”;

Dodaj trasę sieć.php plik do dzwonienia zniszczyć() metoda.

Trasa :: '/Users/delete/id', 'usercontroller@niszczy');

Po kliknięciu linku Usuń pojawi się następujące dane wyjściowe.

Wniosek:

Korzystanie z kontrolera zasobów i koncepcja zasobu trasy zostały szczegółowo wyjaśnione w tym samouczku za pomocą operacji CRUD. Mam nadzieję, że pomoże nowym użytkownikom Laravel w łatwym wdrożeniu operacji CRUD w swoim projekcie.