Edit File: SeasonEdit.php
<?php namespace App\Livewire\Admin\Season; use App\Models\Season; use App\Models\History; use Livewire\Component; use Illuminate\Support\Str; use Illuminate\Validation\Rule; use Livewire\Attributes\Layout; use Livewire\Attributes\Validate; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Session; class SeasonEdit extends Component { public string $name; public $order; public $max_order; public $season; protected function rules() { return [ 'name' => [ 'required', 'string', 'max:100', Rule::unique("seasons", "name")->ignore($this->season->id), ], 'order' => [ 'required', 'numeric', ], ]; } public function mount($id) { $this->season = Season::find($id); $this->max_order = Season::count(); $this->order = $this->season->order; $this->name = $this->season->name; } public function update() { $this->validate(); $this->season->name = $this->name; $this->season->slug = Str::slug(strtolower($this->name)); if($this->order != $this->season->order) { $get_current_season_based_on_order = Season::where("order", $this->order)->first(); if($get_current_season_based_on_order) { $get_current_season_based_on_order->order = $this->season->order; $get_current_season_based_on_order->save(); } $this->season->order = $this->order; } else { $this->season->order = $this->order; } $this->season->save(); History::create([ 'name' => Auth::user()->name, 'page' => 'Season', 'title' => Auth::user()->name . ' Memperbarui Season ' . $this->season->name, 'status' => 'info', ]); Session::flash('status', 'success'); Session::flash('message', 'Berhasil Memperbarui Season ' . $this->season->name); return redirect()->route("admin.season.index"); } #[Layout("layouts.admin")] public function render() { return view('livewire.admin.season.season-edit'); } }
Back