| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- <?php
- namespace App\Filament\Resources\TextbookSeriesResource\Pages;
- use App\Filament\Resources\TextbookSeriesResource;
- use Filament\Resources\Pages\CreateRecord;
- use Illuminate\Support\Str;
- class CreateTextbookSeries extends CreateRecord
- {
- protected static string $resource = TextbookSeriesResource::class;
- protected function mutateFormDataBeforeCreate(array $data): array
- {
- // 如果没有填写 slug,自动生成
- 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);
- }
- }
|