2017-06-28 8 views
2

Ich mache hier eine Web-App mit Laravel + AngularJS und ich habe eine Frage. Brauche ich ein Modell für jede Tabelle, die ich in meiner Datenbank habe? Es gibt 87 Tabellen in meiner Datenbank und ich muss alle nach der Eingabe abfragen, die der Benutzer wünscht.Modelle in Laravel 5

Ich möchte nur sicherstellen, dass alle Tabellen eine Modelldatei haben müssen oder wenn nur eine ausreicht.

+0

Bitte fügen Sie etwas Code, was Sie vorher versucht haben. –

Antwort

0

Es gibt zwei Möglichkeiten, mit denen Sie Ihre DB-Tabellen zugreifen:

  1. Eloquent ORM (abhängig von Modellen)
  2. DB Fassade Query Builder (unabhängig von Models)

Former, ist mehr Sauberer und bester Ansatz für die Ausführung der Datenbankabfrage und der zugehörigen Aufgabe, wobei Letzteres nicht sauber ist und es schwierig für Sie sein wird, große Anwendungen zu verwalten, da Sie angegeben haben, dass in Ihrer Anwendung mehr als 80 Tabellen vorhanden sind.

Auch wenn Sie Eloquent verwenden, ist es auch besser, ein Basismodell zu haben, das einen gemeinsamen Code hat, den Sie in untergeordneten Modellen erben können. Wenn Sie beispielsweise "Benutzer-ID" speichern möchten, die einige DB-Änderungen vorgenommen hat, können Sie in der Startfunktion Auth::id() schreiben und diesen Wert dem Feld changed_by in Ihrer Tabelle zuweisen.

In DB Facade Weise müssen Sie den Tabellennamen jedes Mal hart codieren, wenn Sie den DB-Betrieb ausführen. Dies führt zu Inkonsistenzen, wenn Sie feststellen, dass Sie den Namen der Tabelle ändern müssen Trotzdem wird es schwierig zu verwalten, wenn in einer Datei mehrere DB-Operationen laufen. Es gibt Optionen wie, Erstellen einer globalen Tabellenname-Variable, auf die zugegriffen werden kann, um eine DB-Operation durchzuführen.

Fazit: Ja, die Schaffung 80+ Modell für die Implementierung Eloquent Weise schmerzhaft ist, aber für eine kurze Zeit, weil die Anwendung es einfach sein wird wächst für Sie zu verwalten, wird es für andere Entwickler gut sein, wenn sie fange an, daran zu arbeiten, da es einen Überblick über DB geben wird und es die Lesbarkeit des Codes verbessern wird.

0

Es hängt davon ab, wie Sie Abfragen bearbeiten möchten.

Wenn Sie Eloquent ORM verwenden möchten, benötigen Sie Modellklassen, um Objekte und Beziehungen zu behandeln. Dies ist ein Modell für eine Tabelle, mit Ausnahme der Tabellen für Zwischenbeziehungen, auf die über das Pivot-Attribut zugegriffen werden kann.

Raw SQL-Abfragen werden ebenfalls unterstützt. Sie benötigen keine Modellklassen für sie, da jedes Ergebnis im Ergebnis-Array ein PHP StdClass-Objekt ist. Sie müssen jedoch Raw SQL schreiben.

Siehe Laravel documentation.