1, 'msg' => '服务器异常,请稍后再试', ]; /** * 显示用户收藏的产品列表 * * @return \Illuminate\View\View */ public function index() { /** * @var $user User */ $user = auth()->user(); // 获取当前用户 // 获取用户收藏的产品,按最新排序并分页 $likesProducts = $user->products() ->where('user_id', auth()->id()) ->withCount('users') // 统计每个产品的收藏用户数 ->latest() // 按照创建时间降序排列 ->paginate(10); // 每页显示10个产品 // 返回用户收藏产品的视图 return view('user.products.likes', compact('likesProducts')); } /** * 切换产品的收藏状态 * * @param string $uuid 产品的唯一标识符 * @return \Illuminate\Http\JsonResponse */ public function toggle($uuid) { /** * @var $product Product */ $product = Product::query() ->where('uuid', $uuid) // 根据 UUID 查找产品 ->firstOrFail(); // 如果未找到,抛出 404 异常 $user = auth()->id(); // 获取当前用户的 ID // 检查当前用户是否已经收藏该产品 if ($product->users()->where('user_id', $user)->exists()) { // 如果已收藏,则取消收藏 $product->users()->detach($user); // 返回 JSON 响应,表示已取消收藏 return response()->json([ 'code' => 200, 'msg' => '欢迎下次收藏' ]); } // 如果未收藏,则添加收藏 $product->users()->attach($user); // 返回 JSON 响应,表示已成功收藏 return response()->json([ 'code' => 201, 'msg' => '收藏成功' ]); } }