Laravel 프레임 워 크 전후 단 분리 개발 모델 페이지 구현.

실 현 된 기능 모듈: 글 목록 가 져 오기
  • 요약 설명: 추천 글 목록 인 터 페 이 스 를 가 져 옵 니 다 (발표 시간 에 따라 정렬, 최신 발표 가 앞 에 있 습 니 다)
  • 요청 한 URL 입 니 다.: http://xx.com/api/article/recommend?page=1&numberOfPage=2
  • 요청 방식: GET
  • 인자: (1) page  필수   int    몇 페이지? (2)numberOfPage  필수   int   각 페이지 의 개수.
  • 예 시 를 되 돌려 줍 니 다.
  • //    Json  :
    {
        "code":200,
        "message":"",
        "data":{
            "pagination":{
                "currentPage":1,//    
                "totalPage":100,//   
            },
            "article":[
                {
                    "title":"    ",
                    "summary":"    ",
                    "content":"",//    ,   
                    "update_at":"1012362541", //        
                    "recommend":true //       
                },
                {
                    "title":"    ",
                    "summary":"    ",
                    "content":""//    ,   
                    "update_at":"1012362541", //        
                    "recommend":true //       
                },
            ]
        }
    }
    
    
    //    Json  : 
    {
        "code":403,
        "error": "               "
    }

    [개발 분업]: 백 엔 드 분리.
    [개발 환경]: Laravel 프레임 워 크 5.6  +  php7.1 + phpStudy + Mysql
    [페이지 전후 엔 지 니 어 를 완성 하 는 책임]:
                     1) 전단 엔지니어: 전단 에 페이지 와 글 목록 페이지 를 완성 한 다음 에 이 인터페이스 에 접근 하 는 요청 (경로) 을 규정 하여 백 엔 드 에 요청 을 통 해 두 개의 인 자 를 제공 합 니 다. page 현재 몇 페이지 와  numberOfPage 페이지 마다 표 시 된 개수 입 니 다.
                     2) 백 엔 드 엔지니어: 백 엔 드 는 전단 엔지니어 의 요청 에 따라 해당 하 는  루트 루트 - > 컨트롤 러 컨트롤 러 - - > 모델 모델 - > 방법 function, 그리고 방법 에서 request 대상 을 통 해 전단 에서 제공 하 는 두 개의 파 라미 터 를 가 져 옵 니 다.그리고 Eloquent 데이터 베 이 스 를 통 해 작업 중인  paginate () 방법 으로 대응 하 는 데 이 터 를 가 져 옵 니 다. 
    Laravel 프레임 의  paginate ($numberOfPage): GET 요청 에서 page 인 자 를 자동 으로 가 져 옵 니 다. paginate 방법 으로 페이지 를 나 눈 후 dd 또는 dump 를 통 해 데 이 터 를 출력 하면 표 시 됩 니 다. 페이지 의 데이터 입 니 다. 페이지 라 는 매개 변 수 는 laravel 의 paginate 방법 으로 자동 으로 가 져 와 해당 페이지 의 데 이 터 를 표시 합 니 다.
    다음은 제 코드 입 니 다. 
    경로:
    Route::get('article/recommend','Api\Article\RecommendController@queryRecommend')->name('queryRecommend');

    컨트롤 러 및 방법: 
    class RecommendController extends BaseController
    {
        //               
        public function queryRecommend(Request $request){
            $numberOfPage = $request->numberOfPage; //      。
            $article = Article::where('recommend',1)->orderBy('updated_at','desc')->paginate($numberOfPage); //recommend=1   。
            if($article!=null){ //        。
                $articleJSON = json_encode($article);
                $newArticle = json_decode($articleJSON);
                $arrayArticle = $newArticle->data;
                for($i=0;$irecommend==1){
                        $arrayArticle[$i]->recommend = true ; 
                    }
                    if($arrayArticle[$i]->recommend==0){
                        $arrayArticle[$i]->recommend = false ; 
                    }
                }
                return $this->success([
                    "pagination"=>["currentPage"=>$newArticle->current_page,"totalPage"=>$newArticle->last_page],
                    "article"=>$newArticle->data
                ], "        ");
            }else{
                return $this->error("               ", 403);
            }
            
        }
    }

    관련 된 방법:
     protected function success($data = [], $msg = 'success'){
            return response()->json([
                "code"=>200,
                "massage"=>$msg,
                "data"=>$data
            ]);
        }
    
        protected function error($msg, $code = 0){
            return response()->json([
                'code' => $code,
                'error' => $msg
            ]);
        }
    

    —————————————————————————————————————————
    나의 의견: 
    1. 당신 은 한 단락 을 쓰 는 것 이 좋 습 니 다.  다음 코드 한번 볼 게 요. [페이지 완성 후] 거.  데이터 구조:
    $articleInfo = Article::paginate($numberOfPage );
    dd($articleInfo);
    2. 그리고 실행:
    dd ($articleInfo - > current page); 이 대상 의 current page 를 찾 을 수 없습니다.
    3. 그리고 실행: 
    dd (json encode ($articleInfo); $articleInfo 를 json 형식의 문자열 로 변환 하여 현재 구 조 를 보십시오. 
    4. 그리고 실행: 
    $newArticle = json_decode(json_encode($articleInfo));  이 $articleInfo 대상 을 표준 형식의 대상 으로 변환 합 니 다.
    dd ($newArticle - > current pag); 이 대상 의 current page 를 꺼 낼 수 있 습 니 다.
    5. 마지막 으로 $new Article 과 $articleInfo 의 구 조 는 어떤 차이 가 있 습 니까? 
    dd($newArticle);
    dd($articleInfo);
     

    좋은 웹페이지 즐겨찾기