2013-07-12 7 views
5

Mam pole zaznaczania na formularzu, który wykorzystuje dane, które są wymienione z wymownym modelu (laravel 4):Dodaj pozycję, aby zaznaczyć pole z wymownym kolekcji

$campuses = Campus::lists('name', 'id'); 

i formy:

{{ Form::select('campus_id', $campuses) }} 

Jednak chciałbym, aby pierwsza opcja w formularzu była Select..., więc jeśli użytkownik nie wybrał jeszcze opcji, pierwsza opcja nie staje się domyślna.

Jak mogę dodać inną opcję do początku kolekcji Eloquent?

Próbowałem coś takiego:

$campuses = array('Select...') . Campus::lists('name', 'id'); 

Odpowiedz

9

Można również zrobić

$campuses = array('' => 'Select...') + Campus::lists('name', 'id'); 

ten sposób go używać, suma 2 tablice

+0

To nie działa dla laravel 5.2 – Someone

+1

Myślę, że metoda list została usunięta na rzecz 'pluck()' –

3

można scalić 2 tablice z array_merge funkcji.

więc odpowiedź będzie

$campuses = array_merge(array('Select...'), Campus::lists('name', 'id'));

+0

D'oh! Perfekcyjnie, dziękuję. – Dwight

+0

w późniejszej wersji, musimy dodać -> all() po argumencie :: list(). Ponieważ listy już nie zwracają tablicy, a dodanie -> all() zwróci je w tablicy, abyśmy mogli użyć array_merge. –

Powiązane problemy