input("categoryId") ?? ""; $locale = $locale == "tw" ? "zh_TW" : $locale; $result = []; //年份清單 $regions = Region::where("visible", 1)->pluck("name", "id")->all(); $tags = Tag::where("visible", 1)->pluck("name", "id")->all(); $result["regions"] = $regions; $result["tags"] = $tags; //文章列表 $projects = Project::query(); if($request->has('region')){ $projects->where("region_id", $request->input('region')); } if($request->has('tags')){ $request_tags = $request->input('tags'); $projects->whereHas("tags", function ($query) use ($request_tags) { return $query->whereIn("tags.id", $request_tags); }); } $projects = $projects->with(['tags', 'region'])->orderByDesc("order")->get(); foreach($projects as $project){ $result["list"][] = [ "id" => $project->id, "region_id" => $project->region_id, "region" => $project->region->getTranslation("name", $locale), "address" => $project->getTranslation("address", $locale), "tags" => $project->tags->pluck('name', 'id')->all(), "name" => $project->getTranslation("name", $locale), "imgUrl" => $project->first_list_img_url ]; } return Response::ok($result); } public function detail($locale = 'tw', $id){ $locale = $locale == "tw" ? "zh_TW" : $locale; $project = Project::find($id); $projectHistories = []; foreach($project->histories as $history){ $operateDate = Carbon::parse($history->operate_date); $projectHistories[$operateDate->format("Y")][] = [ "operateDate" => $operateDate->format("m/d"), "title" => $history->getTranslation("title", $locale) ]; } $result = [ "name" => $project->getTranslation("name", $locale), "subName" => $project->getTranslation("sub_name", $locale), "sub_name" => $project->getTranslation("sub_name", $locale), "images" => $project->img_list, "region_id" => $project->region_id, "region" => $project->region->getTranslation("name", $locale), "address" => $project->getTranslation("address", $locale), "tags" => $project->tags->pluck("name", "id")->all(), "floor_plan" => $project->getTranslation("floor_plan", $locale), "building_structure" => $project->getTranslation("building_structure", $locale), "design_unit" => $project->getTranslation("design_unit", $locale), "badges" => $project->getBadgesByType($locale, $project->badge_type), "contact_info" => [ "unitName" => $project->getTranslation("contact_unit", $locale), "unitPhone" => $project->getTranslation("contact_phone", $locale), "inversmentPhone" => $project->getTranslation("inversment_phone", $locale), ], "spaceInfo" => $project->getTags($locale), "historyList" => $projectHistories ]; return Response::ok($result); } public function badges($locale = 'tw') { $locale = $locale == "tw" ? "zh_TW" : $locale; $projects = Project::where("badge_type", 2)->get(); $result = []; foreach($projects as $project){ $badgesData = $project->awardBadges; $badges = []; foreach($badgesData as $badge){ $badges[] = [ "imgUrl" => $badge->imgUrlLink, "name" => $badge->getTranslation("title", $locale), "rewardYear" => "取得時間 : " . date("Y.m", strtotime($badge->award_date)) ]; } $result[] = [ "id" => $project->id, "name" => $project->getTranslation("name", $locale), "badges" => $badges ]; } return Response::ok($result); } }