CustomLogin.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace App\Filament\Auth\Pages;
  3. use Filament\Auth\Pages\Login as BaseLogin;
  4. use Filament\Forms\Components\TextInput;
  5. use Illuminate\Contracts\Support\Htmlable;
  6. class CustomLogin extends BaseLogin
  7. {
  8. public function mount(): void
  9. {
  10. parent::mount();
  11. }
  12. protected function getEmailFormComponent(): TextInput
  13. {
  14. return TextInput::make('email')
  15. ->label('手机号')
  16. ->placeholder('请输入11位手机号')
  17. ->required()
  18. ->autocomplete()
  19. ->autofocus()
  20. ->maxLength(11)
  21. ->regex('/^1[3-9]\d{9}$/')
  22. ->helperText('请输入11位手机号码(以1开头)')
  23. ->extraInputAttributes(['tabindex' => 1])
  24. ->prefixIcon('heroicon-m-phone')
  25. ->telRegex('/^1[3-9]\d{9}$/');
  26. }
  27. protected function getCredentialsFromFormData(array $data): array
  28. {
  29. return [
  30. 'username' => $data['email'],
  31. 'password' => $data['password'],
  32. ];
  33. }
  34. public function getTitle(): string | Htmlable
  35. {
  36. return '登录到数学知识图谱管理系统';
  37. }
  38. public function getHeading(): string | Htmlable | null
  39. {
  40. return null;
  41. }
  42. protected function throwFailureValidationException(): never
  43. {
  44. throw \Illuminate\Validation\ValidationException::withMessages([
  45. 'data.email' => '手机号或密码错误',
  46. 'data.password' => '手机号或密码错误',
  47. ]);
  48. }
  49. }