테이블에서 마지막 행을 선택하십시오.
테이블에 삽입 된 마지막 파일을 검색하고 싶습니다. 메서드 first()
가 존재하고 테이블의 첫 번째 파일을 제공하지만 마지막 삽입을 얻는 방법을 모르겠습니다.
지금 주문할 때와 같은 필드를 기준으로 내림차순으로 주문해야합니다. 예를 들어, 업로드가 완료되었을 때 타임 스탬프가있는 경우 이와 같은 작업을 수행 upload_time
합니다.
프리 라벨 4
return DB::table('files')->order_by('upload_time', 'desc')->first();
라 라벨 4 이상
return DB::table('files')->orderBy('upload_time', 'desc')->first();
라 라벨 5.7 이상
return DB::table('files')->latest('upload_time')->first();
업로드 시간, 내림차순으로 파일 테이블의 행을 정렬 하고 첫 번째 행을 사용합니다 . 이것이 가장 최근에 업로드 된 파일입니다.
Laravel에서 제공하는 최신 범위를 즉시 사용하십시오.
Model::latest()->first();
그렇게하면 모든 레코드를 검색하지 않습니다. orderBy에 대한 더 좋은 지름길.
Laravel의 기본 ORM 인 Eloquent를 사용하는지 여부는 언급하지 않았습니다. 생성 된 경우 User_at에 의해 User 테이블의 최신 항목을 얻으려면 다음과 같이 할 수 있습니다.
User::orderBy('created_at', 'desc')->first();
먼저 created_at 필드를 기준으로 사용자를 내림차순으로 정렬 한 다음 결과의 첫 번째 레코드를 사용합니다.
그러면 컬렉션이 아닌 User 개체의 인스턴스가 반환됩니다. 물론이 대안을 사용하려면 Eloquent 클래스를 확장하는 User 모델이 있어야합니다. 다소 혼란 스러울 수 있지만 시작하기가 매우 쉽고 ORM이 실제로 도움이 될 수 있습니다.
자세한 내용 은 매우 풍부하고 자세한 공식 문서 를 확인하십시오 .
마지막 레코드 세부 사항을 얻으려면
Model ::all()->last();
또는Model ::orderBy('id', 'desc')->first();
마지막 레코드 ID를 얻으려면
Model::all()->last()->id;
또는Model ::orderBy('id', 'desc')->first()->id;
라 라벨 컬렉션에는 마지막 방법이 있습니다
Model::all() -> last(); // last element
Model::all() -> last() -> pluck('name'); // extract value from name field.
이것이 가장 좋은 방법입니다.
이 시도 :
Model::latest()->get();
마지막 레코드 세부 사항을 얻으려면 아래 코드를 사용하십시오.
Model::where('field', 'value')->get()->last()
당신은 당신이 수행 할 때 그냥 Laravel 3, 4 삽입하는 실제 행을 찾는 경우 save
또는 create
같은 새로운 모델에 대한 조치를 :
$user->save();
-또는-
$user = User::create(array('email' => 'example@gmail.com'));
삽입 된 모델 인스턴스가 리턴되고 방금 작성된 사용자의 프로파일 페이지로 경로 재 지정과 같은 추가 조치에 사용될 수 있습니다.
저용량 시스템에서 마지막으로 삽입 된 레코드 작업을 찾는 것은 거의 항상 작동하지만 동시에 삽입해야하는 경우 잘못된 레코드를 찾기 위해 쿼리를 끝낼 수 있습니다. 이는 여러 테이블을 업데이트해야하는 트랜잭션 시스템에서 실제로 문제가 될 수 있습니다.
어떻게 든 위의 모든 것이 laravel 5.3에서 작동하지 않는 것 같습니다. 그래서 다음을 사용하여 내 자신의 문제를 해결했습니다.
Model::where('user_id', '=', $user_id)->orderBy('created_at', 'desc')->get();
누군가를 구제 할 수 있기를 바랍니다.
테이블에 날짜 필드가 있으면 this ( User::orderBy('created_at', 'desc')->first();
)가 가장 좋은 해결책이라고 생각합니다. 그러나 날짜 필드가 없으며 Model ::orderBy('id', 'desc')->first()->id;
최상의 해결책입니다.
사용 Model::where('user_id', $user_id)->latest()->get()->first();
하면 하나의 레코드 만 반환하고 찾을 수 없으면를 반환 null
합니다. 이것이 도움이되기를 바랍니다.
참고 URL : https://stackoverflow.com/questions/16549455/select-last-row-in-the-table
'Programing' 카테고리의 다른 글
줄 바꿈없이 인쇄하면 ( 'a'인쇄) 공백을 인쇄합니다. 제거하는 방법은 무엇입니까? (0) | 2020.07.09 |
---|---|
라디오 그룹에서 라디오 버튼을 기본값으로 설정하는 방법은 무엇입니까? (0) | 2020.07.09 |
HttpURLConnection이 프록시를 사용하도록하려면 어떻게합니까? (0) | 2020.07.09 |
Android Studio Gradle : 오류 : ': app : processDebugGoogleServices'태스크에 대한 실행에 실패했습니다. (0) | 2020.07.09 |
markdown에 knitr를 사용하여 로컬 이미지의 크기를 설정하는 방법은 무엇입니까? (0) | 2020.07.09 |