Membuat Slug Di Laravel

Membuat Slug di Laravel.Apa itu slug? Slug sendiri adalah bagian dari URL/Permalink Website yang merujuk pada sebuah konten secara spesifik.Slug berada di bagian belakang dari permalink,setelah nama domain anda.Kalau biasanya temen-teman buat detail da…


This content originally appeared on DEV Community and was authored by MedanInCode

Membuat Slug di Laravel.Apa itu slug? Slug sendiri adalah bagian dari URL/Permalink Website yang merujuk pada sebuah konten secara spesifik.Slug berada di bagian belakang dari permalink,setelah nama domain anda.Kalau biasanya temen-teman buat detail data masih dengan angka seperti dibawah ini.

https://medanincode.com/post/ci4/2/

Dimana 2 adalah id dari si data,ini kurang ramah SEO Friendly,kita akan merubah menjadi seperti dibawah ini agar lebih SEO Friendly.

https://medanincode.com/post/ci4/passing-data-controller-ke-view-di-codeigniter-4/

Str::Slug

Cara paling mudah adalah menggunakan perintah Str::slug('parameter') jadi ketika menyimpan hanya menggunakan code seperti dibawah ini.

<?php
...

public function store(Request $request){
    $post = new Post; 
    $post->title = $request->title;
    $post->slug = Str::slug($post->title, '-'); 
    $post->body = $request->body;
    $post->save();

}

Tapi kalau hanya dengan cara ini akan ada kendala jika post memiliki title yang sama.Karena slug juga bersifat unique.Daripada teman-teman pusing memikirkan logikannya bisa menggunakan package cviebrock/eloquent-sluggable.

Package cviebrock/eloquent-sluggable

Untuk menggunakan package cviebrock/eloquent-sluggable pertama yang dilakukan adalah install package.

composer require cviebrock/eloquent-sluggable

Setelah terinstal publish konfigurasi file agar bisa merubah settingan default dari package.

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

Update Model laravel teman-teman,contohnya menjadi seperti dibawah ini.

<?php
use Cviebrock\EloquentSluggable\Sluggable;

class Post extends Model
{
    use Sluggable;
    /**
     * Return the sluggable configuration array for this model.
     *
     * @return array
     */
    public function sluggable(): array
    {
        return [
            'slug' => [
                'source' => 'title'
            ]
        ];
    }
}

title adalah nama kolom table yang akan dijadikan patokan dari slug.Atau jika ingin menggunakannya tanpa menambahkan di model panggil fungsi SlugService::createSlug seperti contoh dibawah ini.

<?php
...
use Cviebrock\EloquentSluggable\Services\SlugService;
...
public function store(Request $request){
    $post = new Post; 
    $post->title = $request->title;
    $post->slug = SlugService::createSlug(Post::class, 'slug', $post->title);
    $post->body = $request->body;
    $post->save();

}

Sekian tutorial kali ini,jika ada yang kurang jelas bisa ditanyakan dibawah.Kalau diatas susah gak ada kolom komentar.


This content originally appeared on DEV Community and was authored by MedanInCode


Print Share Comment Cite Upload Translate Updates
APA

MedanInCode | Sciencx (2022-01-09T09:53:02+00:00) Membuat Slug Di Laravel. Retrieved from https://www.scien.cx/2022/01/09/membuat-slug-di-laravel/

MLA
" » Membuat Slug Di Laravel." MedanInCode | Sciencx - Sunday January 9, 2022, https://www.scien.cx/2022/01/09/membuat-slug-di-laravel/
HARVARD
MedanInCode | Sciencx Sunday January 9, 2022 » Membuat Slug Di Laravel., viewed ,<https://www.scien.cx/2022/01/09/membuat-slug-di-laravel/>
VANCOUVER
MedanInCode | Sciencx - » Membuat Slug Di Laravel. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2022/01/09/membuat-slug-di-laravel/
CHICAGO
" » Membuat Slug Di Laravel." MedanInCode | Sciencx - Accessed . https://www.scien.cx/2022/01/09/membuat-slug-di-laravel/
IEEE
" » Membuat Slug Di Laravel." MedanInCode | Sciencx [Online]. Available: https://www.scien.cx/2022/01/09/membuat-slug-di-laravel/. [Accessed: ]
rf:citation
» Membuat Slug Di Laravel | MedanInCode | Sciencx | https://www.scien.cx/2022/01/09/membuat-slug-di-laravel/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.