Ich versuche, eine Dropdown-Liste mit Werten aus einer MySQL-Tabelle mit Laravel zu generieren. Die Tabelle ist einfach, zwei Spalten - id
und category
.Generieren Dropdown-Listeneingabe mit Werten aus DB-Tabelle
Im Folgenden werden alle Datensätze (Kategorien) abrufen, sondern ein Objekt eher als ein Array zurückgibt, das, was ich für das Drop-down-Code benötigen, ist -
$categories = Category::all();
Der Code für das Drop-down ist:
{{ Form::select('category', $categories, $post->category_id) }}
Ideen?
UPDATE
bgallagh3r schlug eine foreach Schleife unter Verwendung jeder Kategorie in einem Array zu konvertieren. Ihr Code hat mich nahe gebracht, aber eine Reihe von funky verschachtelten optgroup
Tags erzeugt. Ich konnte es nur ein optgroup
unten erhalten, aber das ist eine zu viel ..
$categories = Category::all();
foreach ($categories as $cat)
{
$category = $cat->to_array();
$id = $category['id'];
$value = $category['category'];
$cats[] = array($id => $value);
}
Und dann, in der Form:
{{ Form::select('categories', $categories)}}
ich mit diesem HTML am Ende:
<select name="categories">
<optgroup label="0">
<option value="1">Department News</option>
</optgroup>
<optgroup label="1">
<option value="2">General</option>
</optgroup>
...
</select>
Ich wusste nichts über die Listen-Methode, bis ich darüber stolperte, aber ich wollte etwas klarstellen, das ich entdeckt habe. Durch das Weglassen des zweiten Parameters wird die Listenmethode nicht standardmäßig auf den Schlüssel des Modells gesetzt. Dies war in 3.2.12 nicht der Fall und auch nicht in der aktuellsten Version von 4. Sie möchten den Schlüssel immer dann übergeben, wenn Sie die Dropdownliste richtig ausfüllen möchten (wobei der Wert der Option zum Wert der Option wird) Schlüssel). – kreeves
Danke, aktualisiert die Antwort für L4 – Barryvdh
Das ist wirklich toll. Danke für die Antwort. –