mirror of
https://github.com/cp6/my-idlers.git
synced 2024-11-17 16:02:31 +01:00
a005fc4576
Added all providers cache
90 lines
2.5 KiB
PHP
90 lines
2.5 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Providers;
|
|
use DataTables;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Cache;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class ProvidersController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
$providers = Providers::all();
|
|
return view('providers.index', compact(['providers']));
|
|
}
|
|
|
|
public function create()
|
|
{
|
|
return view('providers.create');
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$request->validate([
|
|
'provider_name' => 'required|min:2'
|
|
]);
|
|
|
|
Providers::create([
|
|
'name' => $request->provider_name
|
|
]);
|
|
|
|
Cache::forget('all_providers');
|
|
|
|
return redirect()->route('providers.index')
|
|
->with('success', 'Provider Created Successfully.');
|
|
}
|
|
|
|
public function show(Providers $provider)
|
|
{
|
|
$servers = DB::table('servers as s')
|
|
->where('s.provider_id', '=', $provider->id)
|
|
->get(['s.id', 's.hostname'])
|
|
->toArray();
|
|
|
|
$shared = DB::table('shared_hosting as s')
|
|
->where('s.provider_id', '=', $provider->id)
|
|
->get(['s.id', 's.main_domain as main_domain_shared'])
|
|
->toArray();
|
|
|
|
$reseller = DB::table('reseller_hosting as r')
|
|
->where('r.provider_id', '=', $provider->id)
|
|
->get(['r.id', 'r.main_domain as main_domain_reseller'])
|
|
->toArray();
|
|
|
|
$data = array_merge($servers, $shared, $reseller);
|
|
|
|
return view('providers.show', compact(['provider', 'data']));
|
|
}
|
|
|
|
public function destroy(Providers $provider)
|
|
{
|
|
$items = Providers::find($provider->id);
|
|
|
|
$items->delete();
|
|
|
|
Cache::forget('all_providers');
|
|
|
|
return redirect()->route('providers.index')
|
|
->with('success', 'Provider was deleted Successfully.');
|
|
}
|
|
|
|
public function getProviders(Request $request)
|
|
{
|
|
if ($request->ajax()) {
|
|
$data = Providers::latest()->get();
|
|
$dt = Datatables::of($data)
|
|
->addIndexColumn()
|
|
->addColumn('action', function ($row) {
|
|
$actionBtn = '<a href="javascript:void(0)" class="edit btn btn-success btn-sm">Edit</a> <a href="javascript:void(0)" class="delete btn btn-danger btn-sm">Delete</a>';
|
|
return $actionBtn;
|
|
})
|
|
->rawColumns(['action'])
|
|
->make(true);
|
|
}
|
|
}
|
|
|
|
}
|