diff --git a/app/Http/Controllers/Admin/HostController.php b/app/Http/Controllers/Admin/HostController.php index 39427e6..f6b3f3a 100644 --- a/app/Http/Controllers/Admin/HostController.php +++ b/app/Http/Controllers/Admin/HostController.php @@ -4,7 +4,9 @@ use App\Http\Controllers\Controller; use App\Models\Host; +use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; +use Illuminate\Http\Response; use Illuminate\View\View; class HostController extends Controller @@ -12,7 +14,7 @@ class HostController extends Controller /** * Display a listing of the resource. * - * @return \Illuminate\Http\Response + * @return Response */ public function index(Host $host) { @@ -25,7 +27,7 @@ public function index(Host $host) /** * Show the form for creating a new resource. * - * @return \Illuminate\Http\Response + * @return Response */ public function create() { @@ -36,7 +38,7 @@ public function create() * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\Response + * @return Response */ public function store(Request $request) { @@ -47,7 +49,7 @@ public function store(Request $request) * Display the specified resource. * * @param \App\Models\Host $host - * @return \Illuminate\Http\Response + * @return Response */ public function show(Host $host) { @@ -58,7 +60,7 @@ public function show(Host $host) * Show the form for editing the specified resource. * * @param \App\Models\Host $host - * @return \Illuminate\Http\Response + * @return Response */ public function edit(Host $host): View { @@ -70,20 +72,23 @@ public function edit(Host $host): View /** * Update the specified resource in storage. * - * @param \Illuminate\Http\Request $request - * @param \App\Models\Host $host - * @return \Illuminate\Http\Response + * @param \Illuminate\Http\Request $request + * @param \App\Models\Host $host + * + * @return RedirectResponse */ - public function update(Request $request, Host $host) + public function update(Request $request, Host $host): RedirectResponse { // $request->validate([ - 'name' => 'required|string|max:255', + // 'name' => 'required|string|max:255', 'managed_price' => 'nullable|numeric', ]); - $host->update($request->all()); + $req = $request->only('managed_price'); + + $host->update($req); return back()->with('success', '此主机已更新。'); } @@ -91,11 +96,15 @@ public function update(Request $request, Host $host) /** * Remove the specified resource from storage. * - * @param \App\Models\Host $host - * @return \Illuminate\Http\Response + * @param \App\Models\Host $host + * + * @return RedirectResponse */ - public function destroy(Host $host) + public function destroy(Host $host): RedirectResponse { // + $host->safeDelete(); + + return redirect()->route('admin.hosts.index')->with('success', '正在排队删除此主机。'); } } diff --git a/app/Models/Host.php b/app/Models/Host.php index b0d46a1..2830df0 100644 --- a/app/Models/Host.php +++ b/app/Models/Host.php @@ -85,6 +85,12 @@ public function scopeThisUser($query, $module = null) } } + public function safeDelete(): bool + { + dispatch(new \App\Jobs\Module\Host($this, 'delete')); + return true; + } + public function cost($price = null, $auto = true): bool { $this->load('user'); diff --git a/resources/views/admin/hosts/edit.blade.php b/resources/views/admin/hosts/edit.blade.php index aabc96a..97b7fde 100644 --- a/resources/views/admin/hosts/edit.blade.php +++ b/resources/views/admin/hosts/edit.blade.php @@ -11,10 +11,10 @@ @csrf @method('PUT') -