Laravel 프레임 워 크 전후 단 분리 개발 모델 페이지 구현.
4809 단어 Laravel 프레임 워 크
http://xx.com/api/article/recommend?page=1&numberOfPage=2
// 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);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel 프레임 워 크 경로 설정 및 사용 예제본 논문 의 사례 는 Laravel 프레임 워 크 의 경로 설정 과 사용 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다. Laravel 설치,원 키 설치 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.