ordering ?? "desc"; $result = []; //年份清單 //置頂影音 $result["top"] = []; $top = News::where("visible", 1)->where("on_top", 1)->first(); if(!empty($top->id)) $result["top"][] = [ "id" => $top->id, "categoryId" => $top->news_category_id, "category" => $top->newsCategory->getTranslation("name", $locate), "postDate" => Carbon::parse($top->post_date)->format("Y/m/d"), "title" => $top->getTranslation("title", $locate), "imgUrl" => $top->news_img_url, "imgAlt" => $top->getTranslation("news_img_alt", $locate), ]; //文章列表 $news = News::where("visible", 1)->where("on_top", 0); $news = $news->orderBy("post_date", $request_ordering)->get(); foreach($news as $item){ $result["list"][] = [ "id" => $item->id, "categoryId" => $item->news_category_id, "category" => $item->newsCategory->getTranslation("name", $locate), "postDate" => Carbon::parse($item->post_date)->format("Y/m/d"), "title" => $item->getTranslation("title", $locate), "imgUrl" => $item->news_img_url, "imgAlt" => $item->getTranslation("news_img_alt", $locate), ]; } return Response::ok($result); } public function detail($locale = 'tw', $id){ $locate = $locale == "tw" ? "zh_TW" : $locale; $news = News::find($id); $paragraphs = []; foreach($news->paragraphs as $paragraph){ $paragraphs[] = [ "type" => $paragraph->contentType(), "imgUrl" => $paragraph->paragraph_img, "alt" => $paragraph->getTranslation("img_alt", $locate), "imgOutLink" => $paragraph->image_link, "content" => nl2br($paragraph->getTranslation("text_content", $locate)), ]; } //瀏覽更多 $otherNewsList = []; $getRangeIds = News::where("visible", 1)->orderByDesc("post_date")->pluck("id")->toArray(); $helper = new Helper(); $otherNewsIds = $helper->findArrayTargetIndex($getRangeIds, $id, [-1, 1]); $otherNews = News::whereIn('id', $otherNewsIds)->get(); foreach($otherNews as $item){ $otherNewsList[] = [ "id" => $item->id, "categoryId" => $item->newsCategory->id, "category" => $item->newsCategory->getTranslation("name", $locate), "postDate" => Carbon::parse($item->post_date)->format("Y.m.d"), "title" => $item->getTranslation("title", $locate), "imgUrl" => $item->news_img_url, "imgAlt" => $item->getTranslation("news_img_alt", $locate), "written" => $item->getTranslation("written_by", $locate), "description" => $item->getTranslation("description", $locate), ]; } $result = [ "id" => $news->id, "categoryId" => $news->newsCategory->id, "category" => $news->newsCategory->getTranslation("name", $locate), "postDate" => Carbon::parse($news->post_date)->format("Y.m.d"), "title" => $news->getTranslation("title", $locate), "imgUrl" => $item->news_img_url, "imgAlt" => $item->getTranslation("news_img_alt", $locate), "written" => $news->getTranslation("written_by", $locate), "description" => $news->getTranslation("description", $locate), "metaTitle" => $news->getTranslation("meta_title", $locate), "metaKeyword" => $news->getTranslation("meta_keyword", $locate), "metaDesc" => $news->getTranslation("meta_description", $locate), "metaImg" => $news->meta_img, "paragraphs" => $paragraphs, "otherNews" => $otherNewsList ]; return Response::ok($result); } }