/home2/mshostin/carnival.ms-hostingladz.com/app/Http/Controllers/CityController.php
<?php
namespace App\Http\Controllers;
use App\Models\City;
use App\Models\Country;
use App\Traits\ImageTrait;
use Illuminate\Http\Request;
class CityController extends Controller
{
use ImageTrait;
public function index()
{
$cities = City::with('country')->get();
return view('dashboard.admin.cities.index', compact('cities'));
}
public function create()
{
$countries = Country::all();
return view('dashboard.admin.cities.create', compact('countries'));
}
public function store(Request $request)
{
$request->validate([
'name' => 'required|string|max:255',
'country_id' => 'required|exists:country,id',
'airport' => 'required|mimes:jpeg,png,jpg,gif,mp4,avi,mov,wmv|max:101200',
'hotel' => 'required|mimes:jpeg,png,jpg,gif,mp4,avi,mov,wmv|max:101200',
'event' => 'required|mimes:jpeg,png,jpg,gif,mp4,avi,mov,wmv|max:101200',
]);
$data = $request->except(['_token']);;
$airportImageName = $this->uploadImage($request->file('airport'), 'images/airport/carnivalImages');
$data['airport'] = 'images/airport/carnivalImages/' . $airportImageName;
$hotelImageName = $this->uploadImage($request->file('hotel'), 'images/hotel/carnivalImages');
$data['hotel'] = 'images/hotel/carnivalImages/' . $hotelImageName;
$eventImageName = $this->uploadImage($request->file('event'), 'images/event/carnivalImages');
$data['event'] = 'images/event/carnivalImages/' . $eventImageName;
City::create($data);
return redirect()->route('cities.index')
->with('success', 'City created successfully.');
}
public function show(City $city)
{
return view('dashboard.admin.cities.show', compact('city'));
}
public function edit(City $city)
{
$countries = Country::all();
return view('dashboard.admin.cities.edit', compact('city', 'countries'));
}
public function update(Request $request, City $city)
{
$request->validate([
'name' => 'required|string|max:255',
'country_id' => 'required|exists:country,id',
// 'airport' => 'required|mimes:jpeg,png,jpg,gif,mp4,avi,mov,wmv|max:101200',
// 'hotel' => 'required|mimes:jpeg,png,jpg,gif,mp4,avi,mov,wmv|max:101200',
// 'event' => 'required|mimes:jpeg,png,jpg,gif,mp4,avi,mov,wmv|max:101200',
]);
$data = $request->except(['_token', '_method']);
if ($request->hasFile('airport')) {
$airportImageName = $this->uploadImage($request->file('airport'), 'images/airport/carnivalImages');
$data['airport'] = 'images/airport/carnivalImages/' . $airportImageName;
}
if ($request->hasFile('hotel')) {
$hotelImageName = $this->uploadImage($request->file('hotel'), 'images/hotel/carnivalImages');
$data['hotel'] = 'images/hotel/carnivalImages/' . $hotelImageName;
}
if ($request->hasFile('event')) {
$eventImageName = $this->uploadImage($request->file('event'), 'images/event/carnivalImages');
$data['event'] = 'images/event/carnivalImages/' . $eventImageName;
}
$city->update($data);
return redirect()->route('cities.index')
->with('success', 'City updated successfully.');
}
public function destroy(City $city)
{
$city->delete();
return redirect()->route('cities.index')
->with('success', 'City deleted successfully.');
}
}