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

PHPz
풀어 주다: 2024-09-03 18:32:41
원래의
1328명이 탐색했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿