Integrasi Ckeditor dengan Laravel File Manager di Laravel 8
CKEditor di Laravel 8 - Setelah di artikel sebelumnya kita sudah membahas bagaimana cara integrasi TinyMCE 5 dengan laravel file manager di laravel 8, maka pada kesempatan kali ini Saya akan membagikan artikel dengan topik yang tidak beda jauh yaitu bagaimana cara integrasi CKEditor di laravel 8, lengkap dengan panduan integrasi Laravel File Manager. Sebelum masuk ke langkah-langkah integrasi CKEditor di laravel 8, kita akan berkenalan terlebih dahulu dengan Ckeditor.
Table of Contents
Apa itu Ckeditor ?
Ckeditor adalah text editor seperti WYSIWYG yang memungkinkan penulisan konten langsung di dalam halaman web atau aplikasi. Kode inti dari Ckeditor dibuat atau ditulis dalam Javascript dan dikembangkan oleh CKSource. CKeditor tersedia dalam versi open source dan premium.
Saat artikel ini ditulis, Ckeditor tersedia dalam dua versi yaitu Ckeditor 4 dan CKEditor 5, dan pada artikel ini kita akan bahas Cara integrasi CKEditor 4 di laravel 8.
Download CKEditor
Sebelum menggunakan atau integrasi CKEditor di laravel 8, kita harus download CKEditor terlebih dahulu. Ckeditor menyediakan opsi untuk download ckeditor yaitu bisa langsung download dengan command line, zip package, CDN atau bisa menggunakan online builder. Online builder yaitu sebuah fitur dimana kita bisa memilih fitur apa saja yang nantinya akan kita gunakan dalam suatu project dengan ckeditor. Namun pada artikel ini nanti, kita akan menggunakan opsi CDN.
Integrasi CKEditor di Laravel
Setelah berkenal dengan CKEditor, sekarang waktunya kita mencoba bagaimana cara memasang atau integrasi CKEditor di laravel 8, yang nantinya kita juga belajar bagaimana cara integrasi CKEditor dengan laravel file manager di laravel 8.
Install Laravel
composer create-project laravel/laravel larackeditor
Langkah pertama yang harus kita lakukan tentu saja install laravel. Disini saya melakukan install laravel versi terbaru (saat ini versi 8) via composer. Buka terminal, masuk ke direktori dimana project laravel akan diinstall lalu jalankan command seperti di atas. Dengan command tersebut, kita akan menginstall laravel versi terbaru (saat ini versi 8) dengan nama larackeditor.
Install Laravel ui
Pada percobaan ini nanti kita akan membuat case study seperti pada artikel integrasi CKEditor di laravel 8 yaitu dengan skenario memasang ckeditor pada halaman create Post. Untuk dapat masuk ke halaman create post, kita harus terlebih dahulu login. Nah, untuk membuat fitur login atau authentication di laravel, kita akan menginstall package laravel ui.
composer require laravel/ui
php artisan ui bootstrap --auth
npm install && npm run dev
Untuk membuat fitur login atau authentication dengan laravel ui, pertama kita harus masuk ke direktori laravel yang baru diinstall dengan cd larackeditor dan kemudian jalankan command di atas secara berurutan. *Jika terdapat error atau gagal saat menjalankan command npm install && npm run dev, coba ulangi lagi perintah tersebut atau bisa dicoba dengan npm install terlebih dahulu, kemudian jalankan npm run dev.
Jangan lupa untuk membuat database baru untuk project percobaan integrasi CKEditor di laravel 8 ini dan menyesuaikan DB_DATABASE di file .env sesuai dengan nama database yang baru dibuat. Disini saya akan membuat database baru dengan nama larackeditor.
php artisan migrate
Kemudian kalau database sudah dibuat dan file .env sudah disesuaikan, lanjutkan dengan menjalankan migrate dengan command seperti di atas.
Jika proses install laravel ui sudah selesai, silahkan jalankan project kemudian coba register, maka nanti akan didirect ke halaman home seperti pada gambar di atas. Nah, halaman ini nanti akan kita ubah menjadi tampilan tabel berisikan data post yang telah dibuat.
Buat Models & Migration
php artisan make:model Post -m
Langkah berikutnya adalah dengan membuat model dan file migration untuk membuat tabel post yang nantinya digunakan untuk menampung data post yang dibuat menggunakan text editor CKEditor yang diintegrasikan dengan laravel versi 8.
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePostsTable 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->longText('desc');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('posts');
}
}
Berikutnya buka file post migration yang ada di folder databases. biasanya format nama file seperti [timestamp]_create_post_table.php. Setelah itu sesuaikan kode pada file tersebut dengan kode seperti di atas. Pada tabel post, kita akan membuat tiga field saja yaitu title, slug dan desc. Nah, pada field desc ini nantinya berisi data yang kita inputkan dengan text editor CKEditor yang diintegrasikan dengan laravel versi 8. Save, dan jalankan php artisan migrate lagi.
Edit home.blade.php
Seperti yang sudah disinggung sebelumnya, kita akan mengubah tampilan halaman home menjadi tabel post yang berisi data post dinamis yang telah dibuat pada halaman create. Di halaman create nanti kita akan integrasikan dengan CKEditor. Buka file di resources/views/home.blade.php, kemudian ubah semua kodenya menjadi seperti di bawah ini.
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<a href="{{ route('create') }}" class="btn btn-success btn-sm mb-2">Create Post</a>
<table class="table">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">First</th>
<th scope="col">Last</th>
<th scope="col">Handle</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<th scope="row">3</th>
<td colspan="2">Larry the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
@endsection
Dengan kode di atas, kita membuat tabel dan menambahkan tombol create yang mengarah ke route create. Karena route create belum dibuat di file route/web.php, jadi kita perlu membuatnya terlebih dahulu. Tambahkan kode route di bawah ini pada file web.php di bawah record route home.
Route::get('/create', [App\Http\Controllers\HomeController::class, 'create'])->name('create');
Ok, sekarang silahkan coba buka halaman home. Maka tampilannya akan seperti gambar di atas. Data di tabel post seperti gambar di atas masih statis, oleh karena itu kita perlu menambahkan function baru di HomeController.php yaitu function create yang nantinya mengarahkan kita ke view create yang nantinya juga akan dibuat.
Edit HomeController.php
public function create()
{
return view('create');
}
Di route web.php kita sudah mendefinisikan route create yang mengarah ke HomeController di function create, namun kita belum punya function create di HomeController. Oleh karena itu kita perlu menambahkan function create di HomeController dengan kode seperti gambar di atas. Buka HomeController.php dan tambahkan kode di atas pada HomeController.php tepatnya di bawah function home.
Buat File create.blade.php
- Cara Mengatasi Error XAMPP: MySQL shutdown unexpectedly 23 Oktober 2021 65579 views
- Laravel 8: REST API Authentication dengan Sanctum 17 September 2021 31644 views
- Tutorial CRUD (Create, Read, Update & Delete) Codeigniter 4 dengan Bootstrap 14 Oktober 2021 29582 views
- Membuat REST API CRUD di Laravel 8 dengan Sanctum 18 September 2021 28216 views
- Contoh Cara Menggunakan Sweet Alert di Laravel 8 27 Agustus 2021 27270 views