add new city from frontend

This commit is contained in:
HolgerHatGarKeineNode
2023-02-11 15:05:24 +01:00
parent e65ad29aad
commit 8a9d54a68c
6 changed files with 147 additions and 11 deletions

View File

@@ -0,0 +1,49 @@
<?php
namespace App\Http\Livewire\City\Form;
use App\Models\City;
use Livewire\Component;
class CityForm extends Component
{
public ?City $city = null;
public string $fromUrl = '';
protected $queryString = [
'fromUrl' => [
'except' => null,
],
];
public function rules()
{
return [
'city.country_id' => 'required',
'city.name' => 'required|string',
'city.longitude' => 'required',
'city.latitude' => 'required',
];
}
public function mount()
{
if (!$this->city) {
$this->city = new City();
}
}
public function save()
{
$this->validate();
$this->city->save();
return redirect($this->fromUrl);
}
public function render()
{
return view('livewire.city.form.city-form');
}
}

View File

@@ -35,7 +35,14 @@ class CityTable extends DataTableComponent
];
})
->setColumnSelectStatus(false)
->setPerPage(10);
->setPerPage(10)
->setConfigurableAreas([
'toolbar-left-end' => [
'columns.cities.areas.toolbar-left-end', [
'country' => $this->country,
],
],
]);
}
public function columns(): array