cms-laravel/app/Livewire/PhotoSlider/PhotoSliderView.php

44 lines
1.2 KiB
PHP

<?php
namespace App\Livewire\PhotoSlider;
use Livewire\Component;
class PhotoSliderView extends Component
{
public $slider;
public function mount($id)
{
try {
$this->slider = $this->fetchFromApi("https://api.example.com/photoSlider/{$id}");
} catch (\Exception $e) {
session()->flash('error', 'Failed to load photo slider details: ' . $e->getMessage());
return redirect()->route('photo-slider.index');
}
}
private function fetchFromApi($url)
{
$response = \Http::get($url);
return $response->json()['data'] ?? null;
}
public function delete($uuid)
{
try {
$response = \Http::delete("https://api.example.com/photoSlider/{$uuid}");
if ($response->successful()) {
session()->flash('success', 'Record was successfully deleted.');
return redirect()->route('photo-slider.index');
}
} catch (\Exception $e) {
session()->flash('error', 'Failed to delete record: ' . $e->getMessage());
}
}
public function render()
{
return view('livewire.photo-slider.photo-slider-view', ['slider' => $this->slider]);
}
}