Ich versuche, eine Dropdown-Liste mit Werten aus einer MySQL-Tabelle mit Laravel zu generieren. Die Tabelle ist einfach, zwei Spalten - id
und category
.
Der folgende Befehl ruft alle Datensätze (Kategorien) ab, gibt aber ein Objekt und nicht ein Array zurück, was ich für den Dropdown-Code benötige -
%Vor%Der Code für das Dropdown ist:
%Vor%Ideen?
AKTUALISIEREN
bgallagh3r hat vorgeschlagen, eine foreach-Schleife zu verwenden, um jede Kategorie in ein Array umzuwandeln. Ihr Code hat mich nahe gebracht, aber eine Reihe von funky verschachtelten optgroup
-Tags erzeugt. Ich konnte es auf nur ein optgroup
runter bringen, aber das ist eins zu viel ..
Und dann in der Form:
%Vor%Ich habe diesen HTML-Code:
%Vor%Sie können die 'Listen' Funktion versuchen:
$categories = Category::lists('category', 'id');
(Nur für Laravel 3) Oder lassen Sie den "id" -Parameter einfach weg, da standardmäßig der Modellschlüssel verwendet wird, siehe Ссылка
$categories = Category::lists('category');
(Für Laravel 4 benötigen Sie den zweiten Parameter, siehe Ссылка )
Je nachdem, ob Sie Eloquent für Ihre Modelle verwenden Kategorie gibt ein Array von Objekten zurück, Sie müssen die Objekte in Arrays konvertieren, bevor Sie sie an die Form-Klasse übergeben.
%Vor%In Laravel 4 können Sie einfach Folgendes ausprobieren:
%Vor% Fügen Sie Ihrer Ansicht nach einfach {{ Form::select('category', $category) }}
hinzu. Das Ergebnis ist, was Sie wollen, wie folgt
Für Laravel 5.3.x
Im Controller
%Vor%In der Ansicht
%Vor%