Es ist zwar nicht schlecht, aber wir müssen sehr vorsichtig sein, denn durch direkte Anfragen können wir unsere Anwendung verfügbar machen oder ihre Leistung verringern. Wenn wir jedoch wissen, was wir tun, können wir einige Dinge erhalten, die aufgrund ihrer Komplexität sonst schwer zu erreichen wären .
Wie erreicht man das?
Um diese direkten Abfragen einzubinden , können wir Daten in eine Migrationsdatei einbinden . Auf diese Weise können wir sicherstellen, dass wir den Verlauf unserer Änderungen aufrechterhalten. Wenn wir auf einen früheren Stand in unserer Datenbank zurückkehren müssen, können wir dies tun.
Gehen wir von der Voraussetzung aus, dass wir eine Tabelle in unserer Datenbank haben, um eine Migration zu erstellen, bei der wir Daten manuell hinzufügen, gehen wir wie folgt vor:
· Wir werden die Migration des Hinzufügens von Daten mit dem folgenden Code generieren:
php artisan migrate: make add_data_to_shows_table
· Dies sollte eine Datei des Stils 2014_07_02_222551_add_data_to_shows_table.php erzeugen, wobei die Nummerierung dem Erstellungsdatum der Datei entspricht.
· Sehen wir uns im folgenden Bild einen Beispielcode an, den wir in der Methode up () hinzufügen können :
Wir sehen, dass wir einen kleinen Datensatz mit 3 Datensätzen vorbereitet haben, bisher war alles sehr einfach, jetzt werden wir sehen, wie wir direkte Anfragen stellen können.
Generieren Sie die Direct SQL-Abfrage
Um direkte Anfragen zu stellen, müssen wir die folgenden Schritte ausführen.
1- Wir müssen zuerst ein Modell generieren, dafür erstellen wir in unserer Anwendung im Verzeichnis app / models eine Datei namens Show.php , dieser Name ist der Singular der Datenbank, auf diese Weise können wir ihn gemäß der Laravel- Konvention verwenden . Mal sehen, was unser Modell bringen wird:
In der Klasse sehen wir, dass wir manuell eine SQL-Abfrage erstellt haben, die alle Daten abfragt, und wir haben eine Bedingung festgelegt, in der wir eine Klausel hinzufügen können, um unsere Daten zu sortieren. Wenn wir diese Argumente nicht übergeben, wird die Abfrage ohne die Sortierung generiert.
2- Da wir den Datensatz erstellt haben, werden wir eine Route generieren, auf der wir unsere Abfrage mit direktem SQL aufrufen können. Dazu müssen wir den entsprechenden Code in die Datei routes.php mit dem folgenden Inhalt einfügen , den wir in der Abbildung sehen:
Wir sehen dann, dass wir ein Objekt des Modells erstellt haben, das wir im vorherigen Schritt deklariert haben, dann haben wir die Methode aufgerufen, die wir eingeschlossen haben, und wir haben ein Feld und eine Orientierung übergeben, um das ***** b und die Reaktion der Ergebnisse auszuführen. Schließlich haben wir das verwendet Hilfsmethode von Laravel dd () , um die Daten anzuzeigen. In einer normalen Anwendung könnten wir anstelle dieser Hilfsmethode die Ergebnisse an eine Ansicht senden, um sie zu durchlaufen.
Wie wir sehen können, ist es sehr einfach, eine direkte SQL-Abfrage in Laravel durchzuführen. Wir müssen nur die Methode im Modell erstellen und können so auf die Abfragen zugreifen.