How to generate dynamic real time sitemap.xml file in Laravel 8

How to generate dynamic real time sitemap.xml file in Laravel 8

The following steps help you to create a real-time sitemap.xml file and these steps also help to create dynamic XML files.

Step 1: create a route create a route for this in your routes/web.php file Ex.

Route::get('sitemap.xml', [App\Http\Controllers\SitemapController::class,'index'])->name('sitemapxml'); 

Step 2: Create Controller

Now you can create SitemapController.php with artisan command -->

php artisan make:controller SitemapController

Now you can put this code in your controller

Use App\Models\Post; //your model name 
public function index() {
 $page = Post::where('status', '=', 1)->get();
return response()->view('sitemap_xml', ['page' => $page])->header('Content-Type', 'text/xml'); }

Step 3: Create View

Now please create a view file in

resources/view/sitemap_xml.blade.php file with this code
Put this code in that created view file

 <?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
@foreach ($page as $post)
<url>
<loc>{{ url($post->page_slug) }}</loc>
<lastmod>{{ $post->updated_at->tz('UTC')->toAtomString() }}</lastmod>
<priority>0.9</priority>
</url>
@endforeach
</urlset>

Tags

We are Recommending you:

Leave a comment

Comments