>  기사  >  PHP 프레임워크  >  Laravel 개발: CRUD 작업에 Laravel Nova를 사용하는 방법은 무엇입니까?

Laravel 개발: CRUD 작업에 Laravel Nova를 사용하는 방법은 무엇입니까?

WBOY
WBOY원래의
2023-06-14 11:40:041296검색

Laravel은 오늘날 가장 인기 있는 PHP 프레임워크 중 하나로 풍부한 기능과 편리한 개발 경험을 제공합니다. Laravel Nova는 Laravel 애플리케이션을 위해 특별히 설계된 관리 인터페이스 빌더로, 백엔드 관리 패널을 보다 쉽게 ​​생성하고 관리할 수 있도록 도와줍니다. 이번 글에서는 CRUD 작업에 Laravel Nova를 사용하는 방법을 살펴보겠습니다.

CRUD 작업이란 무엇인가요?

CRUD는 "만들기, 읽기, 업데이트 및 삭제"의 약어입니다. 이 네 가지 작업은 모든 애플리케이션의 기본 기능입니다. CRUD 작업을 통해 데이터베이스의 데이터 추가, 쿼리, 업데이트 및 삭제와 같은 기본 작업을 구현할 수 있습니다. Laravel 프레임워크에서는 Eloquent ORM을 사용하여 이러한 작업을 쉽게 구현할 수 있습니다. 그러나 보다 사용자 친화적인 관리 패널을 원한다면 Laravel Nova가 훌륭한 솔루션을 제공합니다.

Laravel Nova 설치

Laravel Nova를 사용하기 전에 먼저 Laravel Nova를 설치해야 합니다. Laravel Nova는 상용 제품이며 공식적으로 30일 무료 평가판 기간을 제공합니다. 사용해 보고 싶다면 https://nova.laravel.com/으로 이동하여 계정을 만들고 평가판 라이선스를 얻을 수 있습니다.

설치가 완료되면 Laravel 애플리케이션에 Nova를 추가할 수 있습니다. 이 프로세스를 완료하려면 작곡가를 사용할 수 있습니다. 콘솔의 프로젝트 폴더로 이동하여 다음 명령을 실행하세요.

composer require laravel/nova

또한 Nova 서비스 공급자도 등록해야 합니다. config/app.php 파일에서 공급자 배열을 찾아 다음 코드를 추가합니다.

LaravelNovaNovaServiceProvider::class,

위 명령을 실행한 후 다음 명령을 실행해야 합니다.

php artisan nova:install

이 명령은 Nova 구성 파일과 리소스 디렉터리를 생성합니다. 당신의 신청을 위해. 또한 Nova 게시 명령을 사용하여 Nova의 CSS 및 JavaScript 파일을 public/vendor/nova 디렉터리에 게시해야 합니다.

php artisan vendor:publish --tag=nova-assets

다음으로 config 폴더의 auth.php 파일에서 드라이버를 세션으로 설정해야 합니다. Nova의 인증 시스템이 제대로 작동하도록 하세요:

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],
],

마지막으로 Nova에 대한 인증 경로와 테이블을 생성하려면 다음 명령을 실행해야 합니다:

php artisan nova:install

이제 Laravel Nova의 설치 및 구성이 완료되었습니다.

CRUD 작업에 Laravel Nova 사용

다음으로 CRUD 작업에 Laravel Nova를 사용하는 방법을 살펴보겠습니다. 간단한 예부터 시작하겠습니다. Laravel Nova를 사용하여 새 블로그 애플리케이션을 만들어 보겠습니다. 이 애플리케이션에서 블로그 게시물을 생성, 보기, 업데이트 및 삭제할 수 있습니다.

1. 모델 생성 및 데이터베이스 마이그레이션

먼저 새로운 모델을 생성하고 데이터베이스 마이그레이션을 해야 합니다. 이 프로세스를 완료하기 위해 Laravel의 Artisan 명령줄 도구를 사용할 것입니다. 콘솔에서 프로젝트 폴더로 전환하고 다음 명령을 입력합니다.

php artisan make:model Blog -m

이 명령은 Blog라는 새 모델을 생성하고 create_blogs_table이라는 새 데이터베이스 마이그레이션 파일도 생성합니다.

이제 데이터베이스 마이그레이션 파일에서 "blogs" 테이블의 스키마를 정의해야 합니다. 데이터베이스/마이그레이션 디렉터리에서 이 파일을 찾아 엽니다. 다음과 같은 코드가 표시됩니다.

public function up()
{
    Schema::create('blogs', function (Blueprint $table) {
        $table->id();
        $table->timestamps();
    });
}

public function down()
{
    Schema::dropIfExists('blogs');
}

이 예에서는 ID 및 타임스탬프 필드만 정의했습니다. 필요에 따라 다른 필드를 조정하고 추가할 수 있습니다. 완료 후 데이터베이스 마이그레이션을 실행합니다.

php artisan migrate

2. 리소스 모델 정의

다음으로 리소스 모델을 정의해야 합니다. 리소스 모델은 Laravel Nova와 Eloquent 모델 사이의 다리 역할을 합니다. 우리는 Laravel Nova에게 어떤 데이터베이스 테이블이 연관될 것인지 알려주기 위해 자원 모델을 정의합니다. 자원 모델을 작성하려면 다음 명령을 입력하십시오.

php artisan nova:resource Blog

이 명령은 app/Nova 디렉토리에 Blog.php라는 새 파일을 작성합니다. 이 파일을 열면 다음 코드가 표시됩니다.

<?php

namespace AppNova;

use IlluminateHttpRequest;
use LaravelNovaFieldsID;
use LaravelNovaFieldsText;
use LaravelNovaFieldsNumber;
use LaravelNovaHttpRequestsNovaRequest;

class Blog extends Resource
{
    /**
     * The model the resource corresponds to.
     *
     * @var string
     */
    public static $model = '';

    /**
     * The single value that should be used to represent the resource when being displayed.
     *
     * @var string
     */
    public static $title = 'id';

    /**
     * The columns that should be searched.
     *
     * @var array
     */
    public static $search = [];

    /**
     * Get the fields displayed by the resource.
     *
     * @param  IlluminateHttpRequest  $request
     * @return array
     */
    public function fields(Request $request)
    {
        return [
            ID::make()->sortable(),

            Text::make('Title')->sortable(),

            Number::make('Views')->sortable(),

            Text::make('Content')->hideFromIndex(),
        ];
    }

    /**
     * Get the cards available for the request.
     *
     * @param  IlluminateHttpRequest  $request
     * @return array
     */
    public function cards(Request $request)
    {
        return [];
    }

    /**
     * Get the filters available for the resource.
     *
     * @param  IlluminateHttpRequest  $request
     * @return array
     */
    public function filters(Request $request)
    {
        return [];
    }

    /**
     * Get the lenses available for the resource.
     *
     * @param  IlluminateHttpRequest  $request
     * @return array
     */
    public function lenses(Request $request)
    {
        return [];
    }

    /**
     * Get the actions available for the resource.
     *
     * @param  IlluminateHttpRequest  $request
     * @return array
     */
    public function actions(Request $request)
    {
        return [];
    }
}

이 파일에서는 Blog라는 새 리소스 모델을 정의합니다. 이제 이 모델을 Laravel 모델과 연결해야 합니다. 모델 파일을 열고 상단에 다음 코드를 추가하면 됩니다:

namespace App;

use IlluminateDatabaseEloquentModel;

class Blog extends Model
{
    //
}

3. 리소스를 nova에 연결

이제 블로그 리소스를 Laravel Nova에 연결해야 합니다. 이를 위해 app/Nova/NovaServiceProvider.php 파일을 열고 부팅 방법에 다음을 추가할 수 있습니다:

use AppNovaBlog;

// ...

public function boot()
{
    // ...

    Nova::resources([
        Blog::class,
    ]);
}

이제 Laravel Nova를 성공적으로 구성했으므로 애플리케이션으로 가서 무엇을 볼 수 있는지 살펴볼 수 있습니다. 그것은처럼 보입니까?

4. CRUD 작업 수행

이제 Laravel Nova를 성공적으로 설정하고 블로그 리소스를 연결했습니다. 관리자 패널에 액세스하여 CRUD 작업을 시작할 수 있습니다.

콘솔에서 다음 명령을 실행하여 로컬 개발 서버를 시작하세요.

php artisan serve

그런 다음 http://localhost:8000/nova URL을 열면 로그인 페이지가 표시됩니다. Laravel 애플리케이션에서 기존 계정을 사용하여 로그인하세요.

이제 상단 메뉴에서 "리소스" 드롭다운 메뉴를 클릭하고 블로그를 선택할 수 있습니다. 여기에는 빈 블로그 목록이 표시됩니다.

Laravel Nova를 사용하여 블로그 게시물을 작성, 읽기, 업데이트 및 삭제할 수 있습니다. 페이지 오른쪽 상단에 있는 "새 블로그" 버튼을 클릭하고 데이터를 입력할 수 있습니다. 새 블로그 게시물이 추가될 때마다 목록이 자동으로 업데이트되어 최신 데이터가 표시됩니다.

블로그 게시물의 이름을 클릭하면 보기 및 편집 모드로 들어가 블로그 게시물 업데이트 또는 삭제와 같은 다른 작업을 수행할 수 있습니다. 또한 필터 기능을 사용하면 특정 블로그 게시물을 빠르게 찾을 수 있고, 검색 기능을 사용하면 모든 블로그 게시물에서 키워드를 검색할 수 있습니다.

요약

Laravel Nova를 사용하면 Laravel 애플리케이션의 백엔드 관리자 패널을 쉽게 생성하고 관리할 수 있습니다. 이 튜토리얼에서는 Laravel Nova를 사용하여 간단한 CRUD 애플리케이션을 구축하는 방법을 배웠습니다. 실제 프로젝트에서도 비슷한 방법을 사용하고 Laravel Nova의 고급 기능을 마스터하여 더 복잡한 애플리케이션을 구현할 수 있습니다.

위 내용은 Laravel 개발: CRUD 작업에 Laravel Nova를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.