adrema/app/Member/Actions/MemberShowAction.php

45 lines
1.1 KiB
PHP

<?php
namespace App\Member\Actions;
use App\Member\Member;
use App\Member\MemberResource;
use Inertia\Inertia;
use Inertia\Response;
use Lorisleiva\Actions\Concerns\AsAction;
class MemberShowAction
{
use AsAction;
/**
* @return array{data: MemberResource}
*/
public function handle(Member $member): array
{
return [
'data' => new MemberResource(
$member
->load([
'memberships.activity',
'memberships.subactivity',
'invoicePositions.invoice',
'nationality',
'region',
'subscription',
'courses.course'
])
),
'meta' => MemberResource::meta(),
];
}
public function asController(Member $member): Response
{
session()->put('menu', 'member');
session()->put('title', 'Mitglied ' . $member->fullname);
return Inertia::render('member/ShowView', $this->handle($member));
}
}