123456789101112131415161718192021222324252627282930313233343536 |
- <?php
- namespace App\Http\Controllers;
- use Illuminate\Support\Facades\Cache;
- use App\Models\DistProduct;
- use App\Models\SitePage as DistPages;
- use App\Models\DistVideo;
- class SitemapController extends Controller
- {
- public function index()
- {
- // 定义缓存键和时长
- $cacheKey = "sitemap::sitemap_index_" . getDistId();
- $cacheDuration = 60 * 60; // 缓存时间(秒):60 分钟
- // 获取缓存数据或重新生成
- $sitemapData = Cache::remember($cacheKey, $cacheDuration, function () {
- // 查询数据
- $dist_products = DistProduct::where('enabled', 1)->where('dist_id', getDistId())->get();
- $dist_pages = DistPages::where('status', 1)->where('dist_id', getDistId())->get();
- $dist_videos = DistVideo::where('enabled', 1)->where('dist_id', getDistId())->get();
- // 返回查询结果
- return [
- 'dist_products' => $dist_products,
- 'dist_pages' => $dist_pages,
- 'dist_videos' => $dist_videos,
- ];
- });
- // 创建视图并返回响应
- return response()->view('sitemap.index', $sitemapData)->header('Content-Type', 'application/xml');
- }
- }
|