لإضافة الحقول لعملية تعديل البيانات، فإنه يجب الذهاب إلى UserResource إلى الدالة form ونقوم بتحديد الحقول التي نريد القيام بعملية التعديل عليها
public static function form(Form $form): Form { return $form ->schema([ Forms\Components\TextInput::make('name') ->required(), Forms\Components\TextInput::make('email') ->email() ->unique() ->required(), ]); }
كما نلاحظ أننا لمن نقم بتحديد حقل password وذلك لأننا هنا نريد أن نتعامل معها بشكل منفرد من خلال إظهار popu
<?php namespace App\Filament\Resources\UserResource\Pages; use App\Filament\Resources\UserResource; use Filament\Actions; use Filament\Forms\Components\TextInput; use Filament\Notifications\Notification; use Filament\Resources\Pages\EditRecord; use Illuminate\Support\Facades\Hash; class EditUser extends EditRecord { protected static string $resource = UserResource::class; protected function getHeaderActions(): array { return [ Actions\Action::make('changePassword') ->form([ TextInput::make('new_password') ->password() ->label('New Password') ->required() ->rule('required|string|min:8|confirmed'), // Define the rules directly here TextInput::make('new_password_confirmation') ->password() ->label('Confirm Password') ->required() ->same('new_password') ]) ->action(function (array $data): void { $this->record->update([ 'password' => Hash::make($data['new_password']), ]); Notification::make() ->title('Success') ->body('Password Updated Successfully') ->success() ->send(); }) ]; } }
الأن لو ذهبنا لصفحة تعديل مستخدم معين سنرى أنه سيظهر لدينا button لتعديل كلمة المرور
وعند الضغط عليه ستظهر لنا popup