City.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. namespace App\Http\Livewire;
  3. use Livewire\Component;
  4. class City extends Component
  5. {
  6. public $cities, $name, $enabled, $cityId, $provinceId, $updateCity = false, $addCity = false;
  7. protected $listeners = [
  8. 'deleteCityListner'=>'deleteCity'
  9. ];
  10. protected $rules = [
  11. 'name' => 'required'
  12. ];
  13. public function resetFields(){
  14. $this->name = '';
  15. $this->enabled = true;
  16. }
  17. public function render()
  18. {
  19. $this->cities = City::select('id', 'name', 'enabled')->get();
  20. return view('livewire.city');
  21. }
  22. public function addCity()
  23. {
  24. $this->resetFields();
  25. $this->addCity = true;
  26. $this->updateCity = false;
  27. }
  28. public function storeCity()
  29. {
  30. $this->validate();
  31. try {
  32. City::create([
  33. 'name' => $this->name,
  34. 'province_id' => $this->provinceId,
  35. 'enabled' => $this->enabled
  36. ]);
  37. session()->flash('success','Città creata');
  38. $this->resetFields();
  39. $this->addCity = false;
  40. } catch (\Exception $ex) {
  41. session()->flash('error','Errore in fase di salvataggio');
  42. }
  43. }
  44. public function editCity($id){
  45. try {
  46. $city = City::findOrFail($id);
  47. if( !$city) {
  48. session()->flash('error','Città non trovata');
  49. } else {
  50. $this->name = $city->name;
  51. $this->enabled = $city->enabled;
  52. $this->provinceId = $city->provinceId;
  53. $this->cityId = $city->id;
  54. $this->updateCity = true;
  55. $this->addCity = false;
  56. }
  57. } catch (\Exception $ex) {
  58. session()->flash('error','Errore');
  59. }
  60. }
  61. public function updateCity()
  62. {
  63. $this->validate();
  64. try {
  65. City::whereId($this->cityId)->update([
  66. 'name' => $this->name,
  67. 'province_id' => $this->provinceId,
  68. 'enabled' => $this->enabled
  69. ]);
  70. session()->flash('success','Città aggiornata');
  71. $this->resetFields();
  72. $this->updateCity = false;
  73. } catch (\Exception $ex) {
  74. session()->flash('success','Errore');
  75. }
  76. }
  77. public function cancelCity()
  78. {
  79. $this->addCity = false;
  80. $this->updateCity = false;
  81. $this->resetFields();
  82. }
  83. public function deleteCity($id)
  84. {
  85. try{
  86. City::find($id)->delete();
  87. session()->flash('success',"Città eliminata");
  88. }catch(\Exception $e){
  89. session()->flash('error',"Errore");
  90. }
  91. }
  92. }