마지막 문장에서 이미 답을 말씀하셨습니다. 파운데이션에서 제공하는 latest() API를 보면 created_at 역순으로 정렬하도록 되어 있습니다.
https://github.com/laravel/framework/blob/5.4/src/Illuminate/Database/Query/Builder.php#L1436-L1439
1) 자동 증가 키를 사용할 때 생성 시각 역순으로 정렬하고자 할 때는 latest() API를 쓰는 것 보다, orderBy('id', 'desc')를 쓰는 것이 유리합니다. id 컬럼은 인덱싱이 되어 있고, created_at은 그렇지 않기 때문입니다.
2) 시딩으로 대량 테스트 데이터를 생성할 때 ($now = \Carbon\Carbon::now(); 변수 세팅되어 있다고 가정), 루프를 돌때마다 'created_at' => $now->addSecond()를 해서 레코드 생성시각도 현실적으로 만들어주면 더 좋을 것 같습니다.
아넵 그런 방법이 있었네요...감사합니다. 시딩할때 참고 하겠습니다.
감사합니다.
->orderBy('created_at','desc')
->orderBy('id','desc')
요렇게 하니깐 되네요..
created_at이 전부 동일한 시간이라면 정렬 문제인것 같은데 order by에 pk도 추가하시는걸 추천드립니다.
pagination 처리시에 마지막 페이지 내용이 첫번째 페이지 내용중 일부가 중복되어 나옵니다.
다음과 같은 테스트를 해보았습니다.
latest('id) 로 하면 각 페이지 마다 정상적으로 나옵니다.
lastest() 만 하면 반듯이 마지막 페이지가 첫번째 페이지의 일부가 중복되어 출력 됩니다.
아무리 해봐도...해결이 되지 않네요. 의견 부탁드립니다. ㅠㅠ
<블레이드>
<Route>
<controller>
<출력화면 : 첫번째 페이지>
<출력화면 : 마지막 페이지>
마지막 페이지를 보면 첫번째 페이지의 데이타 중 일부가 중복되어 나옵니다.
Product Table 에는 100개의 Row 가 들어가 있습니다.
다만, Created_at 컬럼의 시간이 모두 같습니다.