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
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
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'];
}
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.');
}
}
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>
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
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.
Top comments (0)