백엔드 개발 PHP 튜토리얼 Filament와 Laravel을 사용하여 강력한 관리 패널 구축: 단계별 가이드

Filament와 Laravel을 사용하여 강력한 관리 패널 구축: 단계별 가이드

Sep 03, 2024 pm 06:32 PM

Building Robust Admin Panels with Filament and Laravel: A Step-by-Step Guide

Laravel은 웹 애플리케이션 개발을 위한 견고한 기반을 제공하는 강력한 PHP 프레임워크입니다. Filament는 관리 인터페이스 생성을 단순화하는 Laravel용 오픈 소스의 우아한 관리 패널이자 양식 작성 도구입니다. 이 가이드는 최신 버전의 Filament 및 Laravel을 사용하여 강력한 관리 패널을 구축하는 과정을 안내합니다.

Laravel SaaS Starter - 몇 주가 아닌 하루 만에 다음 SaaS를 시작하세요
몇 주가 아닌 단 하루 만에 다음 Laravel Saas 프로젝트를 시작해보세요! 모든 SaaS에 필요한 기능이 이미 구축되어 있습니다
www.laravelsaas.store

전제조건
시작하기 전에 개발 시스템에 다음이 설치되어 있는지 확인하세요.

PHP >= 8.0
작곡가
Node.js와 NPM
MySQL 또는 Laravel이 지원하는 기타 데이터베이스

1단계: 새로운 Laravel 프로젝트 설정

먼저 Composer를 사용하여 새 Laravel 프로젝트를 만듭니다.

composer create-project --prefer-dist laravel/laravel filament-admin
cd filament-admin

다음으로 환경 변수를 설정합니다. .env.example 파일의 이름을 .env로 바꾸고 자격 증명으로 데이터베이스 구성을 업데이트합니다.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=filament_db
DB_USERNAME=root
DB_PASSWORD=your_password

다음 명령을 실행하여 애플리케이션 키를 생성하고 기본 Laravel 테이블을 마이그레이션하세요.

php artisan key:generate
php artisan migrate

2단계: 필라멘트 설치

Filament를 설치하려면 Composer를 사용하세요.

composer require filament/filament

다음으로 필라멘트 자산 및 구성을 게시합니다.

php artisan filament:install

3단계: 인증 설정

Filament는 관리자 패널에 대한 액세스를 관리하려면 인증이 필요합니다. Laravel은 내장된 인증 스캐폴딩을 제공합니다. 단순화를 위해 Laravel Breeze를 사용해 보겠습니다.

composer require laravel/breeze --dev
php artisan breeze:install

안내에 따라 선호하는 프런트엔드 옵션(Blade, Vue, React)을 선택하세요. 이 예에서는 Blade:
를 사용합니다.

php artisan migrate
npm install
npm run dev

로그인할 사용자가 있는지 확인하세요. Laravel Tinker를 사용하여 하나를 만들 수 있습니다:

php artisan tinker

>>> \App\Models\User::factory()->create(['email' => 'admin@example.com']);

4단계: 필라멘트 구성

역할이나 권한을 사용하는 경우 Filament HasFilamentRoles 계약을 구현하려면 사용자 모델을 업데이트하세요. 지금은 인증된 모든 사용자가 Filament에 액세스할 수 있도록 보장하겠습니다.

In app/Providers/FilamentServiceProvider.php, define the authorization logic:

use Filament\Facades\Filament;

public function boot()
{
    Filament::serving(function () {
        Filament::registerUserMenuItems([
            'account' => MenuItem::make()
                ->label('My Account')
                ->url(route('filament.resources.users.edit', ['record' => auth()->user()]))
                ->icon('heroicon-o-user'),
        ]);
    });

    Filament::registerPages([
        // Register your custom pages here
    ]);

    Filament::registerResources([
        // Register your custom resources here
    ]);
}

protected function gate()
{
    Gate::define('viewFilament', function ($user) {
        return in_array($user->email, [
            'admin@example.com',
        ]);
    });
}

5단계: 리소스 생성

필라멘트 리소스는 CRUD 인터페이스를 갖춘 Eloquent 모델입니다. Post 모델을 관리하기 위한 리소스를 만들어 보겠습니다.

모델, 마이그레이션 및 팩토리 생성:

php artisan make:model Post -mf

이전 파일의 필드 정의:

public function up()
{
    Schema::create('posts', function (Blueprint $table) {
        $table->id();
        $table->string('title');
        $table->text('content');
        $table->timestamps();
    });
}

마이그레이션 실행:

php artisan migrate

다음으로 필라멘트 리소스를 생성합니다.

php artisan make:filament-resource Post

이 명령은 리소스에 필요한 파일을 생성합니다. app/Filament/Resources/PostResource.php를 열고 리소스 필드를 정의합니다:

use Filament\Resources\Pages\Page;
use Filament\Resources\Pages\CreateRecord;
use Filament\Resources\Pages\EditRecord;
use Filament\Resources\Pages\ListRecords;
use Filament\Resources\Forms;
use Filament\Resources\Tables;
use Filament\Resources\Forms\Components\TextInput;
use Filament\Resources\Forms\Components\Textarea;
use Filament\Resources\Tables\Columns\TextColumn;

class PostResource extends Resource
{
    protected static ?string $model = Post::class;

    protected static ?string $navigationIcon = 'heroicon-o-collection';

    public static function form(Form $form): Form
    {
        return $form
            ->schema([
                TextInput::make('title')
                    ->required()
                    ->maxLength(255),
                Textarea::make('content')
                    ->required(),
            ]);
    }

    public static function table(Table $table): Table
    {
        return $table
            ->columns([
                TextColumn::make('title'),
                TextColumn::make('content')
                    ->limit(50),
                TextColumn::make('created_at')
                    ->dateTime(),
            ]);
    }

    public static function getPages(): array
    {
        return [
            'index' => Pages\ListRecords::route('/'),
            'create' => Pages\CreateRecord::route('/create'),
            'edit' => Pages\EditRecord::route('/{record}/edit'),
        ];
    }
}

6단계: 내비게이션 추가

필라멘트 사이드바에 리소스를 추가하세요. app/Providers/FilamentServiceProvider.php를 열고 리소스를 등록합니다:

use App\Filament\Resources\PostResource;

public function register()
{
    Filament::registerResources([
        PostResource::class,
    ]);
}

7단계: 필라멘트 맞춤화

필라멘트는 고도로 맞춤화 가능합니다. 테마, 구성 요소 등을 변경할 수 있습니다. 예를 들어 기본 색상을 사용자 정의하려면 config/filament.php 파일을 업데이트하세요.

'brand' => [
    'primary' => '#1d4ed8',
],

Filament Documentation 문서에 따라 사용자 정의 페이지, 위젯 및 양식 구성 요소를 만들 수도 있습니다.

Laravel SaaS Starter - 몇 주가 아닌 하루 만에 다음 SaaS를 시작하세요
몇 주가 아닌 단 하루 만에 다음 Laravel Saas 프로젝트를 시작해보세요! 모든 SaaS에 필요한 기능이 이미 구축되어 있습니다
www.laravelsaas.store

결론

이 가이드에서는 새로운 Laravel 프로젝트 설정, Filament 설치, 인증 설정, 리소스 생성, Filament 관리 패널 사용자 정의 등을 살펴보았습니다. 이는 Filament와 Laravel을 사용하여 강력한 관리 패널을 구축하기 위한 견고한 기반을 제공합니다. 더 많은 고급 기능과 사용자 정의를 보려면 공식 문서를 참조하고 Filament의 기능을 살펴보세요.

즐거운 코딩하세요!

위 내용은 Filament와 Laravel을 사용하여 강력한 관리 패널 구축: 단계별 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Stock Market GPT

Stock Market GPT

더 현명한 결정을 위한 AI 기반 투자 연구

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제

PHP에서 이메일 주소가 유효한지 확인하는 방법은 무엇입니까? PHP에서 이메일 주소가 유효한지 확인하는 방법은 무엇입니까? Sep 21, 2025 am 04:07 AM

usefilter_var () tovalidateemailsyntaxandcheckdnsrr () toverifydomainmxrecords.example : $ email = "user@example.com"; if (f ilter_var ($ 이메일, filter_validate_email) && checkdnsrr (Explode ( '@', $ email) [1], 'mx')) {echo "validandDeliverableEmail & qu

PHP에서 물체를 딥 카피 나 복제하는 방법은 무엇입니까? PHP에서 물체를 딥 카피 나 복제하는 방법은 무엇입니까? Sep 21, 2025 am 12:30 AM

AseUnserialize (Serialize ($ obj))는 AllDataisserializable 이하의 경우 FordeepCopying; 그렇지 않으면, ubstract__clone () tomanuallyduplicateNestEdObjectSandavoidshartReferences.

PHP에서 두 배열을 병합하는 방법은 무엇입니까? PHP에서 두 배열을 병합하는 방법은 무엇입니까? Sep 21, 2025 am 12:26 AM

USEARRAY_MERGE () TOCOMBINEARRAYS, DUCRITINGDUPLICATESTRINGKEYSANDENTEXINGUMERICEYS; FORSIMPLERCONCATENATION, 특히 인포드 55.6, USETHESPLATOPERATOR [... $ array1, ... $ array2].

PHP 프로젝트에서 네임 스페이스를 사용하는 방법은 무엇입니까? PHP 프로젝트에서 네임 스페이스를 사용하는 방법은 무엇입니까? Sep 21, 2025 am 01:28 AM

네임 스페이스 인 네임 스페이스 inphorganizecodecodecodeandnamingnamingconflictsbygroupingclasses, 인터페이스, 함수, andconstantsOnspecificname.2.defineanamesUsUsingThenamesPaceyWordAtTHETOPOFOFILE, AFFORBINSPACENAME, suchATESKEYSTOI

PHP의 마법 방법은 무엇이며`__call ()`및`__get ()`의 예를 제공합니다. PHP의 마법 방법은 무엇이며`__call ()`및`__get ()`의 예를 제공합니다. Sep 20, 2025 am 12:50 AM

The__call ()는 MethodsibleorundorundeRunded에서 정의 될 때 MethodStrigged를 정의하고, themodnameandarguments, asshowningwhendingderdefinedmethodslikesayhello ()

PHP에서 파일 확장을 얻는 방법은 무엇입니까? PHP에서 파일 확장을 얻는 방법은 무엇입니까? Sep 20, 2025 am 05:11 AM

useathinfo ($ filename, pathinfo_extension) togetThefileExtension; itreliablyHandleSmultipledOtsededGecases, returningTheextension (예 : "pdf") oranEmptyStringifnoneExists.

PHP로 데이터베이스에서 레코드를 업데이트하는 방법은 무엇입니까? PHP로 데이터베이스에서 레코드를 업데이트하는 방법은 무엇입니까? Sep 21, 2025 am 04:47 AM

toupdateadaBasereCordInphp, FirstConnectusingpdoorMysqli, whenEseprepredStatementStoExecuteAcureCuresqlupDateQuery.example : $ pdo = newpdo ( "mysql : host = localhost; dbname = your_database", $ username, $ username, $ sql = "squer erestemail);

MySQL 조건부 응집 : 필드의 조건 합계 및 계산을 구현하기위한 사용 사례 명령문 MySQL 조건부 응집 : 필드의 조건 합계 및 계산을 구현하기위한 사용 사례 명령문 Sep 16, 2025 pm 02:39 PM

이 기사에서는 케이스 문을 사용하여 MySQL에서 조건부 집계를 수행하여 특정 필드의 조건부 합산 및 계산 방법에 대해 자세히 설명합니다. 실제 구독 시스템 사례를 통해 레코드 상태 (예 : "END"및 "CANCEL"과 같은 총 기간 및 이벤트 수를 동적으로 계산하여 복잡한 조건부 집계의 요구를 충족시킬 수없는 전통적인 합계 기능의 한계를 극복하는 방법을 보여줍니다. 튜토리얼은 합 함수로 사례 문의 적용을 자세히 분석하고 왼쪽 조인의 가능한 널 값을 다룰 때 Coalesce의 중요성을 강조합니다.

See all articles