فیلامنت، ورود با نام کاربری به جای ایمیل
در FilamentPHP صفحه لاگین به صورت پیش فرض این جوریه که با ایمیل و کلمه عبور کار می کنه، در ادامه می نویسم که چطور باید تغییرات بدیم که با نام کاربری (مثلا شماره همراه) و کلمه عبور بتونیم لاگین کنیم:
0- قبل از هر چیز یادتون باشه که در جدول کاربران فیلد user_name رو ایجاد کنید.
1- فایلی رو در مسیر زیر ایجاد می کنیم:
app/Filament/Auth/Login.php
2- کدهای زیر رو در فایل مورد نظر کپی کنید:
<?php
namespace App\Filament\Pages;
use Filament\Facades\Filament;
use Filament\Pages\Auth\Login;
use Filament\Forms\Components\Component;
use Filament\Forms\Components\TextInput;
use Illuminate\Contracts\Support\Htmlable;
class CustomLogin extends Login
{
public function mount(): void
{
if (Filament::auth()->check()) {
redirect()->intended(Filament::getUrl());
}
/* if (app()->environment('local')) {
$this->form->fill([
'user_name' => 'admin',
'password' => 'password',
]);
} */
}
protected function getCredentialsFromFormData(array $data): array
{
return [
'user_name' => $data['user_name'],
'password' => $data['password'],
];
}
public function getTitle(): string|Htmlable
{
return __(' ورود به حساب کاربری ');
}
public function getHeading(): string|Htmlable
{
return __(' ورود به حساب کاربری ');
}
protected function getEmailFormComponent(): Component
{
return TextInput::make('user_name')
->label('نام کاربری')
->required()
->autofocus()
->extraInputAttributes(['tabindex' => 1])
->autocomplete();
}
}
3- در فایل AdminPanelProvider.php در قسمت panel$ قطعه کد زیر رو تغییر بدین:
->login(CustomLogin::class)
و تمام
مطلبی دیگر از این انتشارات
به اشتراک گذاری سریع تر تجربیات شما. مدیریت دانش
مطلبی دیگر از این انتشارات
آموزش چند زبانه کردن لاراول
مطلبی دیگر از این انتشارات
آموزش نصب لاراول 10