my-idlers/app/Http/Controllers/LocationsController.php

76 lines
2.0 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Locations;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
class LocationsController extends Controller
{
public function index()
{
$locations = Locations::allLocations();
return view('locations.index', compact(['locations']));
}
public function create()
{
return view('locations.create');
}
public function store(Request $request)
{
$request->validate([
'location_name' => 'required|string|min:2|max:255'
]);
Locations::create([
'name' => $request->location_name
]);
Cache::forget('locations');
return redirect()->route('locations.index')
->with('success', 'Location Created Successfully.');
}
public function show(Locations $location)
{
$servers = DB::table('servers as s')
->where('s.location_id', $location->id)
->get(['s.id', 's.hostname'])
->toArray();
$shared = DB::table('shared_hosting as s')
->where('s.location_id', $location->id)
->get(['s.id', 's.main_domain as main_domain_shared'])
->toArray();
$reseller = DB::table('reseller_hosting as r')
->where('r.location_id', $location->id)
->get(['r.id', 'r.main_domain as main_domain_reseller'])
->toArray();
$data = array_merge($servers, $shared, $reseller);
return view('locations.show', compact(['location', 'data']));
}
public function destroy(Locations $location)
{
if ($location->delete()){
Cache::forget('locations');
return redirect()->route('locations.index')
->with('success', 'Location was deleted Successfully.');
}
return redirect()->route('locations.index')
->with('error', 'Location was not deleted.');
}
}