Hari ini, cara generate sitemap di laravel 9 adalah topik utama kami. Saya akan menunjukkan kepada Anda tentang cara membuat peta situs xml dinamis di laravel 9. Anda akan mempelajari xml peta situs laravel 9. Saya ingin berbagi dengan Anda laravel 9 sitemap menghasilkan dinamis. Anda hanya perlu melakukan beberapa langkah untuk membuat file sitemap laravel 9.
Peta situs adalah File XML yang memiliki daftar URL situs web Anda. Anda dapat mengirimkan file peta situs ke alat webmaster untuk menginformasikan mesin pencari. Jadi Sitemap sangat penting untuk setiap SEO website.
Dalam contoh ini, kita akan membuat tabel posting dengan judul, slug, dan badan. Kemudian kita akan membuat pabrik untuk posting dummy. Kemudian setelah itu kami akan menghasilkan file XML dan mencantumkan semua URL untuk posting. Ini adalah contoh yang sangat mendasar. jadi mari kita ikuti dan Anda akan mendapatkan file peta situs untuk situs web Anda dan mengirimkannya ke alat webmaster.
Daftar Isi
Mari ikuti langkah-langkah di bawah ini:
Langkah 1: Install Laravel
Langkah ini tidak diperlukan; namun, jika Anda belum membuat aplikasi laravel, Anda dapat melanjutkan dan menjalankan perintah di bawah ini:
composer create-project laravel/laravel example-app
Langkah 2: Buat Post Migration dan Model
Pada langkah ini, kita akan membuat migrasi dan model. Jadi mari kita jalankan perintah di bawah ini untuk membuat tabel posts.
php artisan make:migration create_posts_table
Selanjutnya, perbarui kode di bawah ini ke file migration.
database/migrations/create_posts_table.php
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->string('slug');
$table->text('body');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('posts');
}
};
Kemudian jalankan migrasi baru yang dibuat dengan perintah di bawah ini:
php artisan migrate
Sekarang, jalankan perintah di bawah ini untuk membuat model Post.
php artisan make:model Post
Kemudian perbarui kode berikut ke model Post.
app/Models/Post.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
use HasFactory;
protected $fillable = [
'title', 'slug', 'body'
];
}
Langkah 3: Buat Post Factory
Pada langkah ini, kita akan membuat class Post factory dan menghasilkan dummy record menggunakan perintah tinker. jadi mari kita jalankan perintah di bawah ini untuk membuat post factory.
php artisan make:factory PostFactory
Selanjutnya, salin kode di bawah ini dan perbarui file PostFactory.php.
database/factories/PostFactory.php
<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
use App\Models\Post;
use Illuminate\Support\Str;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Post>
*/
class PostFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = Post::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'title' => $this->faker->text(),
'slug' => Str::slug($this->faker->text()),
'body' => $this->faker->paragraph()
];
}
}
Kemudian jalankan perintah tinker dan buat posts dummy.
php artisan tinker
App\Models\Post::factory()->count(30)->create();
Langkah 4: Buat Route
Pada langkah ini, kita akan membuat satu route sitemap.xml . jadi mari kita tambahkan.
routes/web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\SitemapController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('sitemap.xml', [SitemapController::class, 'index']);
Langkah 5: Buat Controller
Pada langkah ini, kita harus membuat controller baru sebagai SitemapController dengan index()
. kita akan mendapatkan semua posting dan lolos ke file blade. kami akan mengembalikan respons sebagai file xml. jadi mari perbarui kode ikuti:
app/Http/Controllers/SitemapController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Post;
class SitemapController extends Controller
{
/**
* Write code on Method
*
* @return response()
*/
public function index($value='')
{
$posts = Post::latest()->get();
return response()->view('sitemap', [
'posts' => $posts
])->header('Content-Type', 'text/xml');
}
}
Langkah 6: Buat View File
Pada langkah terakhir, mari kita buat sitemap.blade.php untuk menampilkan semua posting dan masukkan kode berikut:
resources/views/sitemap.blade.php
<?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
@foreach ($posts as $post)
<url>
<loc>{{ url('/') }}/post/{{ $post->slug }}</loc>
<lastmod>{{ $post->created_at->tz('UTC')->toAtomString() }}</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
@endforeach
</urlset>
Jalankan Aplikasi Laravel:
Semua langkah yang diperlukan telah dilakukan, sekarang Anda harus mengetikkan perintah yang diberikan di bawah ini dan tekan enter untuk menjalankan aplikasi Laravel:
php artisan serve
Sekarang, Buka browser web Anda, ketik URL yang diberikan dan lihat output aplikasi:
http://localhost:8000/sitemap.xml
Keluaran:
laravel laravel 9 laravel generate sitemap xml example laravel tutorial