>  기사  >  PHP 프레임워크  >  Laravel은 전문적인 RestfulAPI를 작성하는 방법을 가르쳐줍니다.

Laravel은 전문적인 RestfulAPI를 작성하는 방법을 가르쳐줍니다.

藏色散人
藏色散人앞으로
2020-10-27 13:45:462668검색

튜토리얼 칼럼에서 소개한 내용입니다. 필요한 친구들에게 도움이 되길 바랍니다!

Laravel은 전문적인 URL을 간단하게 작성하는 방법을 가르칩니다

Introduction

데이터베이스에 연결하고 마이그레이션 기능을 사용하여 데이터베이스 테이블 구조를 생성한 후 Seeder를 사용하여 처음에 데이터를 채웠습니다. 데이터베이스에 더미 데이터가 있습니다. 이러한 준비가 완료되면 외부 데이터 지원을 제공하기 위한 리소스 인터페이스 기능 구축을 고려할 수 있습니다.

코딩 시간

자신이 디자인한 API 인터페이스와 데이터가 다른 메이저 제조사에서 제공하는 문서 데이터 구조와 다르다고 느끼시나요? 그렇게 전문적이지 않거나, 그렇지 않은 것 같나요? 기준 ? 우리는 아직 다창보다 몇 학년이나 뒤쳐져 있나요? Laravel은 전문적인 URL을 작성하기 위한 모범 사례를 따를 수 있는 간단하고 표준적인 방법을 제공합니다.

예를 들어 리소스의 경우 Restful 스타일을 사용하여 URL 라우팅 주소를 선언합니다.

첫 번째 열은 http 요청 방법이고 두 번째 열은 laravel에 선언된 라우팅 규칙이며 세 번째 열은 해당 컨트롤러 방법. 위의 리소스 목록에는 추가, 삭제, 수정, 확인 등의 모든 작업이 포함되어 있어 매우 포괄적이라고 할 수 있습니다.

위 컨트롤러 메소드를 빠르게 생성하는 방법은 무엇입니까? laravel 스캐폴딩 지침을 사용하여 명령줄에서 실행합니다:

php artisan make:controller EventsController --resource
우리는 –resource

옵션을 사용하여 대상 컨트롤러에서 위의 모든 메서드를 생성합니다.

생성된 파일은

app/Http/Controllers/EventsController.php

에 있습니다. 초기화 내용은 다음과 같습니다.

이러한 메서드는 실제로 바로 사용할 수 있습니다.

그렇다면 위의 라우팅 항목을 하나씩 수동으로 선언해야 합니까? 정말 악몽이네요. 다행스럽게도 laravel이 이를 수행해 주었습니다.

Route 클래스의

resource

메소드를 사용하여 리소스를 등록하세요.

Route::resource('events', 'EventsController');

리소스 라우팅 메소드를 사용하고 경로 이름과 해당 컨트롤러 메소드를 지정하기만 하면 됩니다. 그 경로와 컨트롤러 방법은 지루합니다. 표시의 편의를 위해 데이터를 뷰 파일로 렌더링합니다. 먼저 resources/views/events/index.blade.php 뷰 파일을 만들고 기본 레이아웃 파일을 사용하고 다음 코드를 입력합니다.

@extends('layouts.app')
@section('content')
    <h1>Events</h1>
@endsection

app/Http /Controllers/EventsController

파일을 열고 index 메서드를 수정합니다.

public function index(){
    return view('events.index');}

보시다시피 위 메서드에는 데이터베이스 데이터 상호 작용이 없습니다. 아래 모델을 소개하고 뷰에 렌더링합니다. . 컨트롤러 상단에 다음 참조를 추가합니다.

use App\Event;
index 메서드 내에 다음 코드를 입력합니다.

$events = Event::all();return view('events.index')->with('events', $events);

위 데이터를 사용하여 뷰의 출력 콘텐츠를 탐색하고 다음과 같이 뷰 파일을 수정합니다.

<h1>Events</h1>
        @forelse ($events as $event)         
  • {{ $event->name }}
  •     @empty        
  • No events found!
  •     @endforelse

템플릿 파일 내부 @forelse 메소드는

$events

변수에 순회를 위한 요소가 하나 이상 있는지 확인하고, 그렇지 않은 경우

@empty

블록의 내용을 출력합니다. 브라우저에서 라우팅 주소에 접근하면 대략 아래와 같은 내용이 출력됩니다. Faker가 작성한 가짜 데이터를 사용했기 때문에 다음과 같습니다. 데이터의 양이 너무 많으면 이 페이지를 로드하는 데 시간이 오래 걸리고 목록도 매우 길어질 수 있습니다. . 그래서 페이징이 필요합니다. 페이징 기능을 추가하기 위해 사용되는 SQL 문은 다음과 같습니다.

select id, name from events order by id asc limit 10 offset 0;
select id, name from events order by id asc limit 10 offset 10;
컨트롤러에서 페이징 기능을 사용하려면 모델에서

paginate 메서드를 호출하면 됩니다.

$events = Events::paginate(10);

페이지당 10개 항목을 설정합니다. 뷰에 이전 페이지, 다음 페이지, 페이지 번호에 대한 탐색 모음이 있어야 하며 수동으로 작성할 필요가 없습니다. Laravel은 실제로

paginate

메소드에 의해 반환된 IlluminatePaginationLengthAwarePaginator 클래스를 뷰에 추가하는 것으로 충분합니다:

{!! $events->links() !!}

생성된 네비게이션 바는 다음과 같습니다:

끝에 작성하세요.

이 기사에서는 laravel 데이터베이스를 채우는 데 사용되는 방법을 간략하게 소개합니다. 수동으로 채울 수도 있습니다.

타사 라이브러리를 사용하여 더미 데이터를 채울 수도 있어 효율성이 크게 향상됩니다. 데이터가 준비된 후에만 비즈니스 로직과 인터페이스 도킹에 관해 이야기할 수 있습니다. 이 데이터는 애플리케이션의 기초이기도 하므로 중요합니다.

이 글은 이전 장에서 설명한 laravel 데이터베이스 마이그레이션 기능에 대한 보충 글입니다. 데이터베이스 마이그레이션은 상대적으로 대규모 작업이며, 특히 프로덕션에 투입된 애플리케이션 데이터베이스의 경우 마이그레이션을 업데이트해야 하는 경우 발생할 수 있는 긴급 상황을 예상하여 훈련을 수행해야 합니다. ㅋㅋㅋ

위 내용은 Laravel은 전문적인 RestfulAPI를 작성하는 방법을 가르쳐줍니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 learnku.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제