2025-05-25 11:13:50 +07:00

50 lines
1.3 KiB
PHP

<?php
namespace App\Filament\Resources\StudentResource\Pages;
use App\Filament\Resources\StudentResource;
use App\Models\User;
use Filament\Actions;
use Filament\Notifications\Notification;
use Filament\Resources\Pages\EditRecord;
use Spatie\Permission\Models\Role;
class EditStudent extends EditRecord
{
protected static string $resource = StudentResource::class;
protected function mutateFormDataBeforeSave(array $data): array
{
$parentRole = Role::where('name', 'parent')->first();
$parentUser = User::updateOrCreate(
['email' => $data['email']],
[
'name' => $data['parent_name'],
'phone' => $data['parent_phone'],
]
);
// Pastikan user memiliki role parent
if (!$parentUser->hasRole('parent')) {
$parentUser->assignRole($parentRole);
}
return $data;
}
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make()
->before(function (Actions\DeleteAction $action) {
$student = $this->record;
if ($student->email) {
User::where('email', $student->email)->delete();
}
}),
];
}
}