| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- <?php
- namespace App\Filament\Resources\TextbookSeriesResource\Pages;
- use App\Filament\Resources\TextbookSeriesResource;
- use Filament\Resources\Pages\EditRecord;
- use Illuminate\Support\Str;
- class EditTextbookSeries extends EditRecord
- {
- protected static string $resource = TextbookSeriesResource::class;
- protected function mutateFormDataBeforeSave(array $data): array
- {
- // 如果 slug 为空且 name 不为空,尝试生成
- if (empty($data['slug']) && !empty($data['name'])) {
- $data['slug'] = $this->generateSlug($data['name']);
- }
- return $data;
- }
- /**
- * 生成 slug(简化版)
- */
- private function generateSlug(string $name): string
- {
- // 常见的教材系列名称到 slug 的映射
- $mapping = [
- '人教版' => 'pep',
- '北师大版' => 'bsd',
- '华东师大版' => 'ecnu',
- '苏教版' => 'sjb',
- '鲁教版' => 'ljb',
- '冀教版' => 'hbb',
- '沪教版' => 'shjb',
- '粤教版' => 'gdjb',
- '教科版' => 'jckb',
- '外研版' => 'wyjb',
- '湘教版' => 'xnjb',
- '长春版' => 'ccb',
- '语文版' => 'ywb',
- '数学版' => 'sxb',
- '英语版' => 'yyb',
- ];
- // 先查找映射
- foreach ($mapping as $chinese => $slug) {
- if (strpos($name, $chinese) !== false) {
- return $slug;
- }
- }
- // 如果没有找到映射,使用 slugify
- return Str::slug($name);
- }
- }
|