Wed Apr 2021 1 year ago

Cara Membuat Slug Unique di Laravel 8

Laravel 8 membuat atau generate slug unique. Dalam tutorial ini, Anda akan belajar cara membuat slug unique atau URL slug ramah seo sebelum menyimpan ke database di aplikasi laravel 8 menggunakan eloquent sluggable laravel package.

Terkadang, Anda membuat project posting blog di aplikasi laravel 8. Pada saat itu, perlu membuat atau menghasilkan slug unique untuk setiap posting blog di aplikasi laravel 8.

Jadi, tutorial ini akan memandu Anda langkah demi langkah dalam membuat atau membuat slug unique untuk setiap posting di project posting blog laravel 8 Anda.

Step 1 – Install Laravel 8 App

Pertama-tama, Jalankan perintah berikut di terminal untuk menginstal aplikasi laravel 8. Jadi, buka command prompt Anda dan jalankan perintah berikut:

composer create-project --prefer-dist laravel/laravel Blog

Step 2 – Connecting App to Database

Pada langkah ini, Kunjungi direktori root project aplikasi laravel 8 dan buka file .env . Kemudian tambahkan kredensial database di file .env:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=here your database name here
DB_USERNAME=here database username here
DB_PASSWORD=here database password here

Step 3 – Install Eloquent Sluggable Package

Pada langkah ini, jalankan perintah berikut pada terminal, instal paket eloquent sluggable untuk menghasilkan slug unique:

composer require cviebrock/eloquent-sluggable

Setelah berhasil menginstal paket Eloquent Sluggable, ketik perintah yang diberikan di bawah ini di command prompt:

php artisan vendor:publish --provider="Cviebrock\EloquentSluggable\ServiceProvider"

Step 4 – Build Model and Migration

Pada langkah ini, jalankan perintah berikut di terminal untuk membuat model dan file migrasi:

php artisan make:model Post -m

Perintah it akan membuat satu nama model Post dan juga membuat satu file migrasi untuk tabel post. Setelah berhasil menjalankan perintah, buka database / file migrasi dan letakkan di bawah ini di sini:

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreatePostsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->increments('id');
            $table->string('title');
            $table->string('slug');
            $table->text('description');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('posts');
    }
}

Selanjutnya, migrasikan tabel menggunakan perintah di bawah ini:

php artisan migrate

Sekarang, tambahkan bisa diisi * properti di * post.php file, yang ditempatkan di dalam direktori app/model:

<?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',
     'description',
    ];
    public function sluggable()
    {
        return [
            'slug' => [
                'source' => 'title'
            ]
        ];
    }
}

Step 5 – Add Routes

Pada langkah ini, kunjungi direktori route dan buka web.php . Kemudian tambahkan route berikut ke file web.php:

<?php

 Route::get('/', function () {
     return view('welcome');
 });

Route::resource('posts', 'PostController');
slug generate slug unique laravel example laravel