コンテンツにスキップ

都道府県管理機能仕様書

機能概要

都道府県管理機能は、ECサイトで扱う都道府県マスタを管理するための管理画面機能です。都道府県の作成、編集、削除、一覧表示、並び替えなどの操作が可能です。

URL: /admin/basic-master/prefectures ナビゲーション: 店舗管理グループ > 基本マスタクラスター 技術スタック: Filament v4, Livewire v3

画面構成

一覧画面(List Prefectures)

都道府県の一覧を表示し、検索、ソート、並び替え、削除などの操作が可能です。

画面レイアウト

  • テーブル: 都道府県一覧
  • ツールバー: 一括削除、ページネーション

テーブルカラム

カラム名 表示内容 検索 ソート 表示/非表示
名称 name 常時表示(インライン編集可能)
表示順序 sort_order - 常時表示(インライン編集可能)
有効 is_active - - 常時表示(トグル)
作成日時 created_at - - 常時表示

機能詳細

検索機能 - 名称(name)で検索可能 - リアルタイム検索(入力と同時にフィルタリング)

ソート機能 - デフォルトソート: sort_order 昇順 - 名称、表示順序でソート可能

並び替え機能 - ドラッグ&ドロップで表示順序を変更可能 - sort_order カラムの値を自動更新 - 並び替え後は自動的にテーブルをリフレッシュ

インライン編集 - 名称と表示順序をテーブル内で直接編集可能 - 編集後、自動的に保存

トグル編集 - 有効/無効をテーブル内で直接切り替え可能 - 切り替え後、自動的に保存

ページネーション - デフォルト表示件数: 50件 - 表示件数オプション: 10, 20, 30, 40, 50, 100, 150, 200件

一括削除 - 複数レコードを選択して一括削除可能 - 削除確認ダイアログ表示

レコードアクション - 削除(外部キー制約エラーをキャッチ)

作成画面(Create Prefecture)

新しい都道府県を作成するためのフォーム画面です。

フォーム項目

項目名 フィールド名 必須 最大文字数 説明
名称 name 100 都道府県名
表示順序 sort_order - 表示順序(数値、自動設定: 最大値+1)
有効 is_active - - 有効/無効トグル(デフォルト: true)

レイアウト構成

┌─────────────────────────────────────────┐
│ 名称                                     │
│ 表示順序                                 │
│ 有効                                     │
└─────────────────────────────────────────┘

バリデーション

項目 ルール
名称 必須、最大100文字
表示順序 必須、数値
有効 -

作成時の処理

  1. sort_orderを自動設定(最大値+1)
  2. 都道府県レコードを作成

作成後の動作

  • 作成成功後、一覧画面にリダイレクト
  • 成功通知を表示

バリデーション

フォームバリデーション

フィールド ルール エラーメッセージ
name required, max:100 名称は必須です / 名称は100文字以内で入力してください
sort_order required, integer 表示順序は必須です / 表示順序は数値で入力してください

インライン編集バリデーション

フィールド ルール
name required, string, max:100
sort_order required, integer

エラーハンドリング

一般的なエラー

  • バリデーションエラー: フォーム内にエラーメッセージを表示
  • データベースエラー: エラーログに記録し、ユーザーにエラー通知を表示

削除時のエラー

外部キー制約エラー - 他のテーブルで使用されている都道府県は削除不可 - エラー通知を表示: 「この都道府県は他のアイテムで使用されているため、削除できません。」

削除失敗 - エラーログに記録し、ユーザーにエラー通知を表示

技術仕様

使用技術

  • Filament v4: 管理画面フレームワーク
  • Livewire v3: リアクティブコンポーネント
  • Alpine.js: クライアント側インタラクション(Livewireに同梱)

ファイル構成

app/Admin/Clusters/BasicMaster/Resources/Prefectures/
├── PrefectureResource.php              # メインリソースクラス
└── Pages/
    ├── ListPrefectures.php             # 一覧ページ
    └── CreatePrefecture.php            # 作成ページ

app/Models/
└── Prefecture.php                      # モデルクラス

モデル機能

リレーション - 現在、外部キーリレーションは定義されていません

スコープ - active(): is_active = true の都道府県を取得 - ordered(): sort_order でソート

ページネーション設定

デフォルト表示件数: 50件(config/ecspoke.pagination.default_per_page

表示件数オプション: 10, 20, 30, 40, 50, 100, 150, 200件(config/ecspoke.pagination.per_page_options

UI/UX仕様

インライン編集 - 名称と表示順序をテーブル内で直接編集可能 - 編集後、自動的に保存

トグル編集 - 有効/無効をテーブル内で直接切り替え可能 - 切り替え後、自動的に保存

並び替え - ドラッグ&ドロップで表示順序を変更可能

関連機能

基本マスタ共通機能

  • 都道府県管理は基本マスタクラスター配下の機能です
  • 他の基本マスタ(国、性別、職業、登録種別)と同様の構造を持ちます

参照資料