Files
telekeci/app/Filament/Pages/Auth/Login.php

47 lines
1.2 KiB
PHP

<?php
namespace App\Filament\Pages\Auth;
use Filament\Auth\Pages\Login as BaseLogin;
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Schema;
use Illuminate\Validation\ValidationException;
class Login extends BaseLogin
{
public function form(Schema $schema): Schema
{
return $schema
->components([
$this->getLoginFormComponent(),
$this->getPasswordFormComponent(),
$this->getRememberFormComponent(),
]);
}
protected function getLoginFormComponent(): TextInput
{
return TextInput::make('login')
->label('Email or Phone Number')
->required()
->autofocus();
}
protected function getCredentialsFromFormData(array $data): array
{
$login_type = filter_var($data['login'], FILTER_VALIDATE_EMAIL) ? 'email' : 'phone_number';
return [
$login_type => $data['login'],
'password' => $data['password'],
];
}
protected function throwFailureValidationException(): never
{
throw ValidationException::withMessages([
'data.login' => __('filament-panels::auth/pages/login.messages.failed'),
]);
}
}