فیلامنت، ورود با نام کاربری به جای ایمیل
در 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)
و تمام
مطلبی دیگر از این انتشارات
استفاده از کتابخانه jdf در لاراول
مطلبی دیگر از این انتشارات
لاراول ۱۱ - خلاصه کنفرانس ۲۰۲۴ (قسمت اول)
مطلبی دیگر از این انتشارات
به اشتراک گذاری سریع تر تجربیات شما. مدیریت دانش