Füllen eines Dropdown-Menüs mit Datenbankergebnissen in Laravel 4

8

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?

    
jerauf 21.02.2014, 14:27
quelle

3 Antworten

16

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. Benutzen    pluck stattdessen.

Erklärung des Codes:

  1. Die Methode Form::select erstellt ein HTML-Auswahl-Tag.
  2. company_id ist der Name des Auswahl-Tags.
  3. Der zweite Parameter sind die Optionen für das select-Tag. Die Methode 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: Ссылка

    
SUB0DH 21.02.2014 16:11
quelle
0

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:

%Vor%

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:

  • Das erste Argument in Form::select ist der Name des Selektors. Der, den du auf dem Input::get bekommst.
  • Das zweite Argument ist die Liste zur Erfüllung des select-Attributs (wir haben bereits darüber gesprochen!)
  • Und das dritte , nicht weniger wichtig, ist, wo Sie sagen, welches auf der Lade-Seite ausgewählt ist (für Editionen). Sie müssen auf den Bezeichner verweisen (in diesem Fall die Firmen-ID). Es ist optional, aus offensichtlichen Gründen.

Wenn ich mich nicht klar gemacht habe, bitte fragen Sie hier! = D

    
Dennis Braga 21.02.2014 18:23
quelle
0

Für Laravel 5 können Sie wie folgt codieren: -

Controller-Code

%Vor%

Code anzeigen

%Vor%     
Deepak Kumar 27.12.2017 08:56
quelle