certificate = $certificate; $this->title = $certificate->title; $this->category_id = (string) ($certificate->category_id ?? ''); $this->issuer = (string) ($certificate->issuer ?? ''); $this->certificate_number = (string) ($certificate->certificate_number ?? ''); $this->holder_last_name = (string) ($certificate->holder_last_name ?? ''); $this->issued_at = $certificate->issued_at?->toDateString() ?? ''; $this->expires_at = $certificate->expires_at->toDateString(); $this->notes = (string) ($certificate->notes ?? ''); } public function save(): void { $validated = $this->validate([ 'title' => ['required', 'string', 'max:255'], 'category_id' => ['nullable', 'integer', 'exists:categories,id'], 'issuer' => ['nullable', 'string', 'max:255'], 'certificate_number' => ['nullable', 'string', 'max:255'], 'holder_last_name' => ['nullable', 'string', 'max:255'], 'issued_at' => ['nullable', 'date', 'before_or_equal:expires_at'], 'expires_at' => ['required', 'date'], 'notes' => ['nullable', 'string', 'max:2000'], 'file' => ['nullable', 'file', 'mimes:pdf,jpg,jpeg,png', 'max:10240'], ]); if ($this->file !== null) { Storage::disk('local')->delete($this->certificate->file_path); $this->certificate->file_path = $this->file->storeAs( 'certificates/'.Auth::id(), Str::uuid().'.'.$this->file->getClientOriginalExtension(), 'local' ); } $this->certificate->fill([ 'title' => $validated['title'], 'category_id' => $validated['category_id'] ?: null, 'issuer' => $validated['issuer'] ?: null, 'certificate_number' => $validated['certificate_number'] ?: null, 'holder_last_name' => $validated['holder_last_name'] ?: null, 'issued_at' => $validated['issued_at'] ?: null, 'expires_at' => $validated['expires_at'], 'notes' => $validated['notes'] ?: null, ])->save(); Flux::toast(variant: 'success', text: __('Certificate updated.')); $this->redirectRoute('certificates.index', navigate: true); } /** * @return Collection */ #[Computed] public function categories(): Collection { return Category::orderBy('name')->get(); } }; ?>
{{ __('Edit certificate') }} {{ __('Update the details or replace the stored document.') }}
{{ __('Uncategorized') }} @foreach ($this->categories as $category) {{ $category->name }} @endforeach
{{ __('Save changes') }} {{ __('Download current file') }} {{ __('Cancel') }}