Laravel Resource Controller

Laravel Resource Controller
Ein Ressourcencontroller wird in Laravel verwendet, um Crud Operations problemlos auszuführen. Wenn Sie einen Ressourcencontroller mithilfe von Artisan -Befehl aus dem Terminal erstellen, erzeugt er alle erforderlichen Methoden innerhalb des Controllers im Zusammenhang mit CRUD -Operationen. Es behandelt alle HTTP -Anforderungen für die Anwendung und erfordert eine einzige Codezeile für Crud -Routen. Wie Sie einen Ressourcencontroller erstellen und CRUD -Operationen in Laravel ausführen können, werden in diesem Tutorial angezeigt.

Voraussetzung:

Sie benötigen eine Tabelle in der Datenbank, in der das Laravel -Projekt verbunden ist. Sie können eine Tabelle mit dem Befehl migrieren oder manuell erstellen. Ich habe die benutzt Benutzer Tabelle in diesem Tutorial, um den CRUD -Betrieb mit dem Ressourcencontroller durchzuführen. Der Tisch ist jetzt leer. Die Struktur der Tabelle ist unten gezeigt.

Erstellen Sie einen Ressourcencontroller:

Führen Sie den folgenden Befehl vom Terminal aus, um den benannten Ressourcencontroller zu erstellen UserController.

$ Php Artisan Make: Controller UserController -Ressource

Wenn Sie den Controller von einem Editor öffnen, sehen Sie, dass die folgenden Codes bereits im Controller geschrieben sind. Sieben Methoden werden im Controller automatisch für die CRUD -Operationen erstellt.

Namespace App \ http \ Controller;
Verwenden Sie Illuminate \ http \ request;
Klasse UserController erweitert den Controller

/**
* Zeigen Sie eine Auflistung der Ressource an.
*
* @return \ Illuminate \ http \ Antwort
*/
öffentlicher Funktionsindex ()

//

/**
* Zeigen Sie das Formular zum Erstellen einer neuen Ressource.
*
* @return \ Illuminate \ http \ Antwort
*/
öffentliche Funktion create ()

//

/**
* Speichern Sie eine neu erstellte Ressource im Speicherplatz.
*
* @param \ illuminate \ http \ request $ request
* @return \ Illuminate \ http \ Antwort
*/
öffentlicher Funktionsgeschäft (Anfrage $ Anfrage)

//

/**
* Zeigen Sie die angegebene Ressource an.
*
* @param int $ id
* @return \ Illuminate \ http \ Antwort
*/
öffentliche Funktionshow ($ id)

//

/**
* Zeigen Sie das Formular zur Bearbeitung der angegebenen Ressource.
*
* @param int $ id
* @return \ Illuminate \ http \ Antwort
*/
öffentliche Funktion bearbeiten ($ id)

//

/**
* Aktualisieren Sie die angegebene Ressource im Speicher.
*
* @param \ illuminate \ http \ request $ request
* @param int $ id
* @return \ Illuminate \ http \ Antwort
*/
Öffentliche Funktion Update (Anfrage $ Anfrage, $ ID)

//

/**
* Entfernen Sie die angegebene Ressource aus dem Speicher.
*
* @param int $ id
* @return \ Illuminate \ http \ Antwort
*/
öffentliche Funktion Zerstörung ($ id)

//

Ressourcenrouten:

Fügen Sie die folgende Route für die hinzu UserController So erstellen Sie Ressourcenrouten in das Netz.Php Datei.

Route :: Ressource ('Benutzer', 'UserController');

Führen Sie nun den folgenden Befehl vom Terminal aus, um die aktuelle Routenliste aus dem zu überprüfen Netz.Php Datei.

$ php Artisan Route: Liste

Die folgenden Routeninformationen werden für die Verwendung der Methode Route :: Resource () generiert. Sieben Strecken werden für das Aufrufen von sieben Methoden erstellt. Die Verwendung dieser Routen wird später im nächsten Teil dieses Tutorials erläutert.

Fügen Sie die folgenden Zeilen am Anfang des UserController.Php Datei zum Importieren des Benutzermodells, des Hash -Dienstes zum Hashing des Passworts und des DB -Dienstes für Datenbankvorgänge.

app \ user verwenden;
Hash verwenden;
Verwenden Sie DB

Datensatz einfügen:

Modifiziere den erstellen() Methode von UserController mit dem folgenden Code. Hier ein Objekt der Benutzer Modell wird erstellt, um die neuen Datensätze einzufügen. Nachdem die obligatorischen Werte zugewiesen wurden, die speichern() Die Funktion wird aufgerufen, um den neuen Datensatz in den Einfügen in die Studenten Tisch.

öffentliche Funktion create ()

$ user = neuer Benutzer;
$ user-> name = 'fahmida';
$ user-> mail = '[email protected] ';
$ user-> password = hash :: make ('12345');
versuchen
$ user-> save ();
Echo "Record wird eingefügt";

catch (\ illuminate \ database \ queryException $ e)
echo "doppelter Eintrag";

Die Route, um die anzurufen erstellen() Methode von UserController Ist 'Benutzer/erstellen''. Führen Sie die folgende URL aus dem Browser aus. Wenn der Datensatz ordnungsgemäß eingefügt wird, wird die folgende Ausgabe angezeigt.

http: // localhost/laravelPro/public/user/erstellen

Wenn nun die Tabelle aus der Datenbank überprüft wird, erhalten Sie die folgende Ausgabe.

Alle Datensätze anzeigen:

Modifiziere den Index() Methode von UserController mit dem folgenden Code, um alle Datensätze von der abzurufen Benutzer Tabelle und zeigen die Werte von an Name Und Email.

öffentlicher Funktionsindex ()

$ user = db :: select ('select * von Benutzern');
foreach ($ user als $ user)

echo "Name: $ user-> name";
Echo "
E-Mail: $ user-> mail ";

Die Route, um die anzurufen Index() Methode von UserController Ist 'Benutzer''. Führen Sie die folgende URL aus dem Browser aus.

http: // localhost/laravelPro/public/user

Die folgende Ausgabe wird angezeigt.

Wählen Sie einen spezifischen Datensatz aus:

Modifiziere den zeigen() Methode von UserController mit dem folgenden Code, um einen Datensatz aus dem abzurufen Benutzer Tabelle, die enthält 1 im Ausweis Feld und Zeigen Sie den Wert des Name.

öffentliche Funktionshow ($ id)

$ user = db :: select ('select * von Benutzern wobei id ='.$ id);
echo "Der Name des Benutzers ist". $ user [0]-> Name."
";

Die Route, um die anzurufen zeigen() Methode von UserController Ist 'Benutzer/id''. Führen Sie die folgende URL aus dem Browser aus.

http: // localhost/laravelPro/public/user/1

Die folgende Ausgabe wird angezeigt.

Aktualisieren Sie den Datensatz:

Zwei Methoden sind hauptsächlich im Ressourcencontroller definiert, um einen Datenbankdatensatz zu aktualisieren. Diese sind bearbeiten() Und aktualisieren() wobei die Daten der Datensatzaktualisierungen mit einem beliebigen Formular. Hier wird jedoch kein Bearbeitungsformular verwendet. Also nur die bearbeiten() Die Methode wird verwendet, um einen bestimmten Datensatz der zu aktualisieren Studenten Tisch. Der aktuelle Wert eines bestimmten Datensatzes wird vor und nach der Ausführung der Update -Abfrage gedruckt.

öffentliche Funktion bearbeiten ($ id)

$ user = db :: select ('select * von Benutzern wobei id ='.$ id);
echo "Die aktuelle E -Mail des Benutzers ist". $ User [0]-> E-Mail."
";
$ mail = '[email protected] ';
$ user = db :: select ("Benutzer aktualisieren E -Mail = '$ E -Mail'wherethe E -Mail des Benutzers nach dem Update ist". $ user [0]-> E-Mail;

Die Route, um die anzurufen bearbeiten() Methode von UserController Ist 'Benutzer/id/bearbeiten''. Führen Sie die folgende URL aus dem Browser aus.

http: // localhost/laravelPro/public/user/1/bearbeiten

Die folgende Ausgabe wird angezeigt.

Aufzeichnung löschen:

Destroy () -Methode wird definiert, um einen Datensatz aus der Tabelle zu löschen. Die Route zum Löschen des Datensatzes geht jedoch von einer anderen Methode ab. Hier habe ich die benutzt zeigen() Methode zum Erstellen eines Hyperlinks zum Löschen des Datensatzes, der am Ende der Methode hinzugefügt wird.

öffentliche Funktionshow ($ id)

$ user = db :: select ('select * von Benutzern wobei id ='.$ id);
echo "Der Name des Benutzers ist". $ user [0]-> Name."
";
Echo ".URL ('/')."/user/delete/".$ id."'> Löschen";

Fügen Sie den folgenden Code in den hinzu zerstören() Methode zum Löschen eines bestimmten Datensatzes.

öffentliche Funktion Zerstörung ($ id)

$ user = db :: select ('von Benutzern löschen wobei id ='.$ id);
echo "Der Datensatz wird gelöscht";

Fügen Sie die Route hinzu in Netz.Php Datei zum Aufrufen der zerstören() Methode.

Route :: get ('/user/delete/id', 'userController@destroy');

Nach dem Klicken auf den Link Löschen wird die folgende Ausgabe angezeigt.

Abschluss:

Die Verwendung des Ressourcencontrollers und des Konzepts der Routenressource werden in diesem Tutorial mithilfe eines CRUD -Betriebs ausführlich erläutert. Ich hoffe, es wird den neuen Laravel -Nutzern helfen, den CRUD -Betrieb problemlos in ihrem Projekt zu implementieren.