질문을 삭제하지 말아주세요.!
 
1
0
-1

질문내용과 관련해서 구글링해서 몇일 찾다가 질문 올립니다.

먼저 테이블을 가져와서 paginate하는거로 샘플 구현은 해봤습니다.

( DB::table('users')→paginate(3); 이런식으로 하니까 되더라고요.)


그런데 DB::select(DB::raw 'select ~~~~~')); 로 데이터를 가져오고 있는데 여기에 paginate를 적용했더니

Call to a member function paginate() on array 라고 보이네요.


구글링해서

use Illuminate\Pagination\Paginator;
use Illuminate\Pagination\LengthAwarePaginator;

등등 추가하고 Paginator:: 를 사용해봐도 성공하질 못해서 고민 끝에 질문 올립니다 ㅠㅠ


아 그리고 5.4 버전 사용하고 있습니다.

    CommentAdd your comment...

    3 answers

    1.  
      2
      1
      0

      paginate()는 아래 그림의 네 개의 타입(객체)에서만 쓸 수 있습니다.


      Raw Query 결과를 paginate하시려면 수동으로 Paginator 객체를 만들어 줘야 합니다.

      https://laravel.kr/docs/pagination#manually-creating-a-paginator

      1. 김주원

        참고로 이렇게 하신겁니다.

        [stdClass, stdClass, ...]→paginate(3);

        배열(Array)에는 paginate()라는 메서드가 없습니다.

      2. wooseok

        네 이해했습니다. 그래서 말씀하신거 참고해서 raw로 안뽑아오고

        DB::table로 뽑아와서 바로 paginate 하니까 잘 되네요 답변 감사합니다~

      CommentAdd your comment...
    2.  
      3
      2
      1
      1. wooseok

        넵 내용 확인해봐서 읽어봤는데 구현은 했는데

        selectRaw로는 지금 어찌 구현해야할지모르겠네요 ㅠㅠㅋ

        답변주셔서 감사합니다~

      CommentAdd your comment...
    3.  
      2
      1
      0

      DB::select에서 DB::raw(select 를 다시 해야 되는 경우가 어떤경우인가요. ? 

      DB::select("select ~~~~~") 이렇게 가셔도 될것같은데;;

      1. wooseok

        그렇게 해도 select 되네요.

        원래 raw로 뽑으려고했어서 하다보니 저렇게 된..


        답변주셔서 감사합니다

      CommentAdd your comment...