DEV Community

loading...
Cover image for Cara Membuat Laravel Tagging System

Cara Membuat Laravel Tagging System

adityacprtm profile image Aditya Chamim Pratama ・2 min read

Setelah sebelumnya membuat Subscription System, ini cara kami bagaimana membuat atau mengelola sistem tag yang mudah dan gratis dengan Laravel pada situs ini sebelum beralih ke wordpress. Sistem Tagging ini diperlukan ketika membuat sebuah situs yang berisi artikel atau blog. Jika menulis postingan untuk teknologi, maka dapat membuat tag seperti nama teknologi, jenis teknologi, fitur teknologi, dll.

Dalam posting ini, akan menunjukkan cara membuat Laravel Tagging System menggunakan package dari rtconner/laravel-tagging. Di sini kami asumsikan telah memiliki proyek laravel dan kemudian menginstal paket laravel-tagging.

Install Package Laravel Tagging System

Pada langkah ini, kita perlu menginstal package rtconner/laravel-tagging menggunakan composer dengan menjalankan perintah ini:

composer require rtconner/laravel-tagging
Enter fullscreen mode Exit fullscreen mode

Publish dan jalankan migrasi

Package tersebut akan autodiscover saat mengupdate composer. Kemudian publikasikan tagging.php dan jalankan migrasi database dengan perintah ini:

php artisan vendor:publish --provider="Conner\Tagging\Providers\TaggingServiceProvider"
php artisan migrate
Enter fullscreen mode Exit fullscreen mode

Setup Models

Kemudian siapkan models yang akan digunakan, asumsikan models Post.php, dengan menambahkan baris ini use \Conner\Tagging\Taggable; kedalam class.

{
    use \Conner\Tagging\Taggable;
    protected $fillable = ['title','tags','description'];
}
Enter fullscreen mode Exit fullscreen mode

Setup Controller

Di controller yang akan digunakan, asumsikan PostController.php, pada bagian store data tambahkan baris untuk memasukkan data tag ke database. Sesuaikan kode dibawah ini:

{
    public function store(Request $request)
    {
        $this->validate($request, [
            'title' => 'required',
            'description' => 'required',
            'tags' => 'required',
        ]);

        $input = $request->all();
        $tags = explode(", ", $input['tags']); // pecahkan string ke array tags
        $post = Post::create($input); // data post ke db
        $post->tag($tags); // data array tags ke db

        return back()->with('success','Post created successfully.');
    }
}
Enter fullscreen mode Exit fullscreen mode

Setup View

Untuk layout dapat disesuaikan, atau bisa menggunakan Bootstrap, JQuery dan Bootstrap Tags Input. Untuk menggunakan Bootstrap Tags Input cukup tambahkan data-role="tagsinput" ke input field yang akan secara otomatis mengubahnya menjadi tag input field. Sesuaikan contoh dibawah ini:

<form method="POST" action="{{ route('posts.store') }}">
    ...
    <div class="form-group">
        <label>Tags : <span class="text-danger">*</span></label>
        <br>
        <input type="text" data-role="tagsinput" name="tags" class="form-control tags">
        <br>
        @if ($errors->has('tags'))
            <span class="text-danger">{{ $errors->first('tags') }}</span>
        @endif
    </div>
    ...
</form>
Enter fullscreen mode Exit fullscreen mode

Untuk menampilkan tag yang sudah dimasukkan bersamaan dengan postingan dapat jalankan perintah berikut:

@foreach($posts as $post)
    ...
    <div class="post-tags mb-4">
        <strong>Tags : </strong>
        @foreach($post->tags as $tag)
            <span class="badge badge-info">{{$tag->name}}</span>
        @endforeach
    </div>
    ...
@endforeach
Enter fullscreen mode Exit fullscreen mode

That’s it! Sistem tag menggunakan laravel sudah siap digunakan. Untuk informasi lebih lanjut atau contoh penggunaan lain tentang package ini dapat dilihat di halaman github rtconner/laravel-tagging.

Discussion (0)

pic
Editor guide