관리-도구
편집 파일: AdminController.php
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Models\Address; use App\Models\Collaborate; use App\Models\SocialAccount; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; class AdminController extends Controller { public function index() { $totalOrders = \App\Models\Order::where('payment_status', 'success')->count(); $totalSales = \App\Models\Order::where('payment_status', 'success')->sum('total_amount'); $totalCustomers = \App\Models\User::count(); $totalProducts = \App\Models\Products::count(); // Fetch last 5 collaborations (or all if you prefer) $collaborates = Collaborate::latest()->take(5)->get(); return view('admin.index', compact('totalOrders', 'totalSales', 'totalCustomers', 'totalProducts', 'collaborates')); } public function updatePassword(Request $request) { $request->validate([ 'current_password' => 'required', 'new_password' => 'required|min:6|confirmed', ]); $admin = Auth::user(); // default guard if (!$admin) { return back()->withErrors(['auth' => 'User not authenticated.']); } if (!Hash::check($request->current_password, $admin->password)) { return back()->withErrors(['current_password' => 'Current password does not match']); } $admin->password = Hash::make($request->new_password); $admin->save(); return back()->with('success', 'Password updated successfully!'); } public function updateProfile(Request $request) { $request->validate([ 'login_email' => 'required|email', 'address' => 'required|string|max:255', 'phone' => 'required|string|max:20', 'email' => 'required|email', 'tag' => 'nullable|string', ]); $admin = Auth::user(); // ✅ Update user table $admin->email = $request->login_email; $admin->save(); // ✅ Update address table $address = Address::first(); // or Address::where('user_id', $admin->id)->first() if ($address) { $address->address = $request->address; $address->phone = $request->phone; $address->email = $request->email; $address->tag = $request->tag; $address->save(); } return back()->with('success', 'Profile updated successfully!'); } public function updateSocials(Request $request) { $allSocials = SocialAccount::all(); foreach ($allSocials as $social) { // Check if a link was provided for this platform $link = $request->socials[$social->platform] ?? null; // Update the social account record $social->update([ 'url' => $link, // Save the link ]); } return back()->with('success', 'Social media links updated successfully!'); } }