Edit File: PageEdit.php
<?php namespace App\Livewire\Admin\Page; use App\Models\Page; use App\Models\History; use Livewire\Component; use Livewire\Attributes\Layout; use Livewire\Attributes\Validate; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\Storage; use Livewire\Features\SupportFileUploads\WithFileUploads; class PageEdit extends Component { use WithFileUploads; public $page; public $oldimage; public $oldphoto; #[Validate('image|max:1024')] public $image; #[Validate('image|max:1024')] public $photo; #[Validate("required|string|max:100")] public string $canonical; #[Validate("required|string|max:255")] public string $title; #[Validate("required|string|max:255")] public string $keywords; #[Validate("required|string|max:255")] public string $description; public function mount($id) { $this->page = Page::find($id); $this->oldimage = $this->page->logo; $this->oldphoto = $this->page->favicon; $this->canonical = $this->page->canonical; $this->title = $this->page->title; $this->keywords = $this->page->keywords; $this->description = $this->page->description; } public function update() { if($this->photo) { $old_storage_path = substr($this->oldphoto, 9); Storage::delete($old_storage_path); $extension = $this->photo->getClientOriginalExtension(); $newname = "favicon.$extension"; $this->photo->storeAs("page", $newname); $photo_path = "/storage/page/$newname"; $this->page->favicon = $photo_path; } if($this->image) { $old_image_path = substr($this->oldimage, 9); Storage::delete($old_image_path); $extension = $this->image->getClientOriginalExtension(); $newname = "main-logo.$extension"; $this->image->storeAs("page", $newname); $image_path = "/storage/page/$newname"; $this->page->logo = $image_path; } $this->page->title = $this->title; $this->page->canonical = $this->canonical; $this->page->keywords = $this->keywords; $this->page->description = $this->description; $this->page->save(); History::create([ 'name' => Auth::user()->name, 'page' => 'Page', 'title' => Auth::user()->name . ' Mengupdate Halaman', 'status' => 'info', ]); Session::flash('status', 'success'); Session::flash('message', 'Berhasil Mengupdate Halaman'); return redirect()->route("admin.page.index"); } #[Layout("layouts.admin")] public function render() { return view('livewire.admin.page.page-edit'); } }
Back