input("categoryId") ?? ""; $locate = $locate == "tw" ? "zh_TW" : $locate; $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", $locate), "address" => $project->getTranslation("address", $locate), "tags" => $project->tags->pluck('name', 'id')->all(), "name" => $project->getTranslation("name", $locate), "imgUrl" => $project->first_list_img_url ]; } return Response::ok($result); } public function detail($locale = 'tw', $id){ $locate = $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), "description" => $project->getTranslation("description", $locale), "images" => $project->img_list, "metaTitle" => $project->getTranslation("meta_title", $locate), "metaKeyword" => $project->getTranslation("meta_keyword", $locate), "metaDesc" => $project->getTranslation("meta_description", $locate), "metaImg" => $project->meta_img, "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->getBadges($locale), "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') { $locate = $locale == "tw" ? "zh_TW" : $locale; $projects = Project::where("visible", 1)->get(); $result = []; foreach($projects as $project){ $result[] = [ "id" => $project->id, "name" => $project->getTranslation("name", $locale), "badges" => $project->getBadges($locale) ]; } return Response::ok($result); } }