--- title: SubmissionDetail Component --- # SubmissionDetail Component The SubmissionDetail component displays a single submission's complete details. ## Basic Usage ```blade ``` ## Properties | Property | Type | Default | Description | |----------|------|---------|-------------| | `submission` | FormSubmission | required | Submission to display | ## Features - Display all field values - Show submission metadata - Download uploaded files - Delete submission - Resend notifications ## Component Structure ```blade
{{-- Header --}}

Submission {{ $submission->submission_number }}

Submitted: {{ $submission->created_at->format('F j, Y g:i A') }}

{{-- Metadata --}} {{-- Field Values --}}

Submitted Data

@foreach ($submission->values as $value) @endforeach
{{ $value->field_label }} @if (is_array($value->value)) {{ implode(', ', $value->value) }} @else {{ $value->value }} @endif
{{-- Uploaded Files --}} @if ($submission->uploads->count() > 0)

Uploaded Files

@foreach ($submission->uploads as $upload)
{{ $upload->original_name }} ({{ $upload->humanFileSize() }}) Download
@endforeach
@endif {{-- Actions --}}
``` ## Methods ### delete Delete the submission: ```php public function delete(): void { $this->authorize('delete', $this->submission); $formId = $this->submission->form_id; $this->submission->delete(); session()->flash('success', 'Submission deleted.'); $this->redirect(route('forms.submissions.index', $formId)); } ``` ### resendNotifications Resend all notifications: ```php public function resendNotifications(): void { $this->notificationService->sendNotifications($this->submission); session()->flash('success', 'Notifications sent.'); } ``` ### downloadUpload Download an uploaded file: ```php public function downloadUpload(int $uploadId) { $upload = $this->submission->uploads->find($uploadId); if (!$upload) { abort(404); } $disk = Storage::disk($upload->disk); return response()->download( $disk->path($upload->path), $upload->original_name ); } ``` ## Displaying Values Format different value types: ```blade @switch($value->field?->type) @case('checkbox') {{ $value->value ? 'Yes' : 'No' }} @break @case('checkbox_group') @case('select') @if (is_array($value->value)) @else {{ $value->value }} @endif @break @case('textarea')
{{ $value->value }}
@break @case('file') {{-- File handled separately via uploads --}} @break @default {{ $value->value }} @endswitch ``` ## Events Emitted | Event | Payload | Description | |-------|---------|-------------| | `submission-deleted` | `{ id }` | Submission deleted | | `notifications-resent` | `{ count }` | Notifications sent | ## Customizing the View Publish views: ```bash php artisan vendor:publish --tag=forms-views ``` Edit `resources/views/vendor/forms/livewire/submission-detail.blade.php`. ## Next Steps - [SubmissionsList](./submissions-list.md) - Submissions listing - [Submissions Usage](../usage/submissions.md) - Working with submissions - [File Uploads](../usage/file-uploads.md) - File handling