필라멘트 패널에 이용 약관 동의 추가 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- Laravel 개발자 (Filament 패널 사용자, SaaS 대시보드 또는 내부 도구 개발자)
- 난이도: 중간 (Laravel 및 Filament 기초 지식 필요)
핵심 요약
- 필라멘트-이용약관-가드 플러그인 (
filament-terms-guard
)를 사용해 필수 체크박스를 추가하여 이용 약관 동의를 강제 Term::getCurrentTerm(panelId)
메서드로 현재 패널의 최신 공개된 약관을 가져와 모달로 표시handleRegistration()
메서드에서 사용자에게 동의한 약관 버전을 연결 ($model->terms()->attach(...)
)
섹션별 세부 요약
1. 플러그인 설치 및 환경 설정
.env
파일에TERMS_GUARD_PANELS=admin
설정 (패널 ID에 맞게 수정)PanelProvider
에 플러그인 등록 (공식 가이드 참조)- 여러 패널 동시 지원 가능 (예:
admin,member,customer
)
2. 커스텀 등록 페이지 생성
- 명령어
php artisan make:filament-page Register
로 페이지 생성 Filament\Pages\Auth\Register
클래스 확장$view
속성 주석 처리하여 기본 레이아웃 유지
3. 약관 동의 체크박스 구현
Term::getCurrentTerm()
메서드로 현재 패널의 약관 가져오기- 체크박스 필수 입력으로 설정 (사용자 동의 강제)
- 모달을 통해 약관 내용 공개일 포함 표시 (예:
published_at->translatedFormat('d F Y')
)
4. 사용자 등록 처리 로직
handleRegistration()
메서드에서 사용자 모델에 약관 버전 연결$model->terms()->attach($this->terms)
로 데이터베이스에 기록- 약관 테이블은 플러그인 리소스를 통해 관리
5. 패널 제공자 설정 업데이트
PanelProvider
에서 커스텀 등록 페이지(Register::class
) 등록panel()->registration(Register::class)
설정
결론
- 필수 단계: 플러그인 설치 → 커스텀 등록 페이지 생성 →
.env
설정 → 패널 제공자 업데이트 - 테스트 전 필수 조건: 데이터베이스에 약관 내용 등록 및 공개 (플러그인 관리자 또는 모델을 통해)
- 실무 팁:
Term::getCurrentTerm()
메서드와 모달 내published_at
날짜 표시를 통해 버전 관리 및 사용자 투명성 강화 가능