1
0
Fork 0
wow-raid-bingo/app/Http/Livewire/Form/RaidForm.php

78 lines
1.2 KiB
PHP

<?php
namespace App\Http\Livewire\Form;
use App\Models\Raid;
use App\Http\Livewire\Traits\Alert;
use Livewire\Component;
class RaidForm extends Component
{
use Alert;
/**
* The raid record
*/
public $raid;
/**
* True if the record already exists in the database.
*/
public bool $exist;
public function mount(Raid $raid)
{
$this->raid = $raid;
$this->exist = $raid->exists;
}
/**
* Validation rules
*/
protected function rules()
{
return [
'raid.name' => 'required|string|min:2|max:20',
];
}
public function updated($property, $value)
{
$this->validateOnly($property);
}
/**
* Returns true if this card has not been stored in the database.
*/
public function isNew() : bool
{
return !$this->exist;
}
/**
* Submit the form, create/update card.
*/
public function submit()
{
$this->validate();
$this->raid->save();
if ($this->isNew()) {
session()->flash('info', 'Raid was successfully created.');
return redirect()->route('admin.character.index');
}
$this->info('Raid was successfully updated.');
}
/**
* Render the setup page
*/
public function render()
{
return view('form.raid')
->layout('layouts.admin');
}
}