Ich versuche ein Dropdown-Menü mit Datenbankresultaten in Laravel 4 zu füllen. Ich bin Laravel ganz neu. Dies ist tatsächlich meine erste Seite und ich lerne, wie ich gehe. Also, bitte sagen Sie mir, wenn ich die falsche Terminologie oder nicht genug Informationen verwende.
Ich habe eine Datenbank mit Firmeninformationen und ich brauche Benutzer, um aus einem Dropdown-Menü eine Firma auswählen zu können. Oder wenn das Unternehmen nicht in der Datenbank ist, um es hinzuzufügen.
Für das Auswahlmenü muss es so gehen:
[Firmenname Ergebnis]
Und ich verwende diesen Code in meinem Controller:
%Vor%Und das ist es, was ich meiner Meinung nach habe:
%Vor%Haftungsausschluss: Ich habe diesen Code online gefunden.
Zunächst verstehe ich nicht, wie der Wert und der Optionstext aufgefüllt werden, ohne dass ich ihm sage, wo die Daten gespeichert werden sollen.
Zweitens ist der Fehler, der zurückkommt, unerwartet. Wenn ich das [0]
im Formularcode herausnehme, sagt es mir, dass $company_selector
ist undefined
.
Was mache ich hier falsch?
Um ein Dropdown-Menü mit allen Datensätzen aus dem RecordCompany-Modell zu füllen, können Sie Ihrer Ansicht nach Folgendes tun:
%Vor%Hinweis: In Laravel 5 wurde die Methode
lists
nicht mehr verwendet. Benutzenpluck
stattdessen.
Erklärung des Codes:
Form::select
erstellt ein HTML-Auswahl-Tag. company_id
ist der Name des Auswahl-Tags. lists
in jedem Modell (in diesem Fall RecordCompany) generiert ein assoziatives Array mit den Parametern, die an diese Methode ( id
und company_name
in diesem Fall) aller Datensätze in der Datenbanktabelle des Modells übergeben werden. Wenn Sie möchten, können Sie auch die lists
-Methode vom Controller aufrufen und den Wert dann wie folgt an die Ansicht übergeben:
In Controller
%Vor%In der Ansicht
%Vor%Sie können die Laravel 4-Dokumentation zum Erstellen einer Dropdown-Liste hier anzeigen: Ссылка
Ich bin mehrfach gegen die Verwendung von DB-Aufrufen in Sichten. Und hier ist warum:
It ain't made for that!
.
Periode .
Wenn ich dich betrachte (beachte die if
-Klausel), wäre es besser, wenn du ein normales Array erfüllst, das company->id
des Array-Schlüssels und andere Informationen, die du für diesen speziellen Schlüssel als Wert haben möchtest. Auf meinem Klingencode hatte ich das so gemacht:
Bei "Firmen" handelt es sich um ein Array, das vom Controller als Argument an die Ansicht übergeben wird.
Ansichten werden nicht gemacht, um DB-Konsultationen zu machen. Sie werden gemacht, um Daten anzuzeigen. JUST IT!
Das sagte:
Form::select
ist der Name des Selektors. Der, den du auf dem Input::get
bekommst. Wenn ich mich nicht klar gemacht habe, bitte fragen Sie hier! = D
Für Laravel 5 können Sie wie folgt codieren: -
Controller-Code
%Vor%Code anzeigen
%Vor%Tags und Links php mysql forms laravel-4 drop-down-menu