2013-07-12 14 views
26

Używanie laravel i tworzę pole wyboru w formularzu. Używałem pomocnika do utworzenia okna wyboru i wszystko działa poprawnie.elekwentne listy laravel - Sortowanie listy wartości kolumn

odzyskać dane dla wybranej skrzynki z bazy danych i korzystać z następujących czynności, aby pobrać dane:

$data = model::lists('name','id') 

Znowu wszystko działa ok, a ten zwraca oczekiwany tablicę

Mój problem jest jednak, że nie może uporządkować tej listy - próbowałem dodać funkcję orderBy(), ale bez radości.

Inne niż korzystanie z natywnej funkcji php czy istnieje metoda laravel do sortowania listy?

+0

wielkie pytanie. Normalnie trzeba umieścić gdzie, etc na kwerendę, aby utworzyć tablicę do wypełnienia zaznaczenia za pomocą Laravel. –

Odpowiedz

63

można umieścić cokolwiek chcesz, a następnie wymienić je. To znaczy:

model::orderBy('orderByColumn')->lists('name', 'id'); 

Dopóki lists to ostatnia metoda łańcucha inne metody działa dobrze.


Począwszy od wersji 5.3 laravel lists będzie przestarzałe, zamiast używać pluck:

model::orderBy('orderByColumn')->pluck('name', 'id'); 
+1

Można również użyć sortowania tablic php po uzyskaniu tablicy [PHP: Sortowanie tablic] (http://es1.php.net/manual/en/array.sorting.php) –

+0

doskonały - dziękuję. Próbowałem zamówić po listach. Nie zdawałem sobie sprawy z kolejności tych funkcji. Jeszcze raz dziękuję – Ray

+0

Dziękuję, dziękuję, dziękuję @ umut-sirin. Dużo miłości z Detroit! –

4

Można spróbować:

$data = model::select('name','id')->orderBy('name'); 

Jeśli to nie zadziała, wrzucić ->get() na końcu:

$data = model::select('name','id')->orderBy('name')->get(); 
+0

Witam - próbowałem tego również, ale zmagałem się z implementacją obiektu w html select helper, do którego dane były przeznaczone. Wynik był poprawny, ale nie mógł go wdrożyć. Listy były łatwiejsze, ponieważ zawierały dokładnie te potrzebne dane. – Ray

Powiązane problemy