[laravel] Laravel Eloquent : all ()의 순서 결과

나는 간단한 작업에 갇혀있다. 이 전화에서 오는 결과를 주문하면됩니다

$results = Project::all();

Project모델은 어디에 있습니까 ? 나는 이것을 시도했다

$results = Project::all()->orderBy("name");

그러나 작동하지 않았습니다. 테이블에서 모든 데이터를 가져 와서 주문하는 가장 좋은 방법은 무엇입니까?



답변

실제로 쿼리 내에서이 작업을 수행 할 수 있습니다.

$results = Project::orderBy('name')->get();

적절한 순서로 모든 결과를 반환합니다.


답변

객체 컬렉션을 반환하므로 all ()을 계속 사용하려는 경우 orderBy (쿼리 수준) 대신 sortBy (컬렉션 수준)를 계속 사용할 수 있습니다.

오름차순

$results = Project::all()->sortBy("name");

내림차순

$results = Project::all()->sortByDesc("name");

자세한 내용은 컬렉션 관련 설명서를 확인하십시오.

https://laravel.com/docs/5.1/collections


답변

또한 이전 답변을 강화하기 위해 두 번째 매개 변수로 하나를 추가하여 내림차순 desc또는 오름차순으로 정렬 할 수도 있습니다 asc.

$results = Project::orderBy('created_at', 'desc')->get();


답변

2017 년 업데이트


Laravel 5.4는 orderByDesc () 메소드를 쿼리 빌더에 추가했습니다.

$results = Project::orderByDesc('name')->get();


답변

desc로 날짜에 대한 결과가 필요한 동안

$results = Project::latest('created_at')->get();


답변

이 작업을 수행:

$results = Project::orderBy('name')->get();

이 작업을 수행하지 마십시오 :

$results = Project::all()->sortBy('name');

왜?
간단히 말해서, 첫 번째 방법은 두 번째 방법보다 빠릅니다.


답변

sortByEloquent 의 방법을 확인하십시오 : http://laravel.com/docs/eloquent