Générer la liste déroulante d'entrée avec des valeurs de la table DB

Je suis en train de générer une liste déroulante avec les valeurs à partir d'une table MySQL à l'aide de Laravel. La table est simple, deux colonnes - id et category.

Suivantes sera de récupérer tous les enregistrements (catégories), mais renvoie un objet plutôt qu'un tableau, qui est ce que j'ai besoin de la liste déroulante code -

$categories = Category::all();

Le code de la liste déroulante est:

{{ Form::select('category', $categories, $post->category_id) }}

Idées?

Mise à JOUR

bgallagh3r a suggéré d'utiliser une boucle foreach pour convertir chaque catégorie à un tableau. Leur code m'a fait fermer, mais a généré un tas de funky imbriquée optgroupbalises. J'ai été en mesure d'obtenir à un seul optgroup mais c'est un de trop..

$categories = Category::all();
foreach ($categories as $cat)
{
    $category = $cat->to_array();
    $id = $category['id'];
    $value = $category['category'];
    $cats[] = array($id => $value);
}

Et puis, dans la forme:

{{ Form::select('categories', $categories)}}

Je me retrouve avec ce code HTML:

    <select name="categories">
    <optgroup label="0">
    <option value="1">Department News</option>
    </optgroup>
    <optgroup label="1">
    <option value="2">General</option>
    </optgroup>
   ...
    </select>

OriginalL'auteur NightMICU | 2013-01-08