Laravel 8 dataTables dengan tutorial contoh relasi. Dalam tutorial ini, kami akan menunjukkan kepada Anda cara menampilkan dan memfilter kolom di tabel data yajra dengan relasi di aplikasi laravel 8.
Terkadang, Anda memiliki lebih dari dua tabel yang bergabung dan menginginkan data kolom filter dengan tabel terpisah di aplikasi laravel 8.
Misalnya, Anda memiliki 2 tabel yang pertama adalah posting dan yang kedua adalah pengguna dan Anda membuat hubungan untuk setiap tabel. Kemudian Anda ingin menampilkan dan memfilter judul posting dan siapa yang menulis posting tersebut (nama penulis). Pada saat itu Anda perlu menggunakan kolom laravel yajra dataTables dengan relasi.
Laravel 8 Contoh DataTables dengan Relasi
Langkah 1 - Instal Aplikasi Laravel 8
Pertama-tama, buka terminal Anda dan jalankan perintah berikut untuk memasang atau mengunduh atau memasang aplikasi laravel 8:
composer create-project --prefer-dist laravel/laravel blog
Langkah 2 - Menghubungkan Aplikasi ke database
Setelah itu, buka file ".env" dan perbarui nama database, nama pengguna dan kata sandi di file env:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=Enter_Your_Database_Name
DB_USERNAME=Enter_Your_Database_Username
DB_PASSWORD=Enter_Your_Database_Password
Langkah 3 – Install Yajra DataTable
Pada langkah ini, jalankan perintah berikut di terminal untuk menginstal yajra datatable melalui paket komposer, jadi buka terminal Anda dan jalankan perintah berikut:
composer require yajra/laravel-datatables-oracle
Setelah itu, Anda perlu mengatur provider dan alias.
config/app.php
.....
'providers' => [
....
Yajra\DataTables\DataTablesServiceProvider::class,
]
'aliases' => [
....
'DataTables' => Yajra\DataTables\Facades\DataTables::class,
]
.....
Langkah 4 - Buat Migrasi dan Modal
Pada langkah ini, jalankan perintah berikut di terminal untuk membuat migrasi tabel pos dan membuat Post Modal:
php artisan nake:modal Post -m
database/migrations/2020_05_20_070104_create_posts_table.php
<?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->integer('user_id');
$table->string('title');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('posts');
}
}
Sekarang jalankan perintah berikut
php artisan migrate
Setelah Anda harus memperbarui kode berikut di file model Post Anda untuk membuat tabel posting.
Selanjutnya buka model Post.php, yang ditempatkan di dalam direktori App/models dan buat hubungan dalam model ini:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use App\Models\User;
class Post extends Model
{
use HasFactory;
protected $fillable = ['title'];
public function users()
{
return $this->belongsTo(User::class,'user_id','id');
}
}
Langkah 5 - Tambahkan route
Selanjutnya, buka file "routes/web.php" Anda dan tambahkan route berikut:
use App\Http\Controllers\PostController;
Route::get('posts', [PostController::class, 'index'])->name('posts.index');
Langkah 6 - Buat Controller dengan Artisan Command
Pada langkah ini, buka terminal Anda, jalankan perintah berikut untuk membuat file PostController.php:
php artisan make:controller PostController
Perintah ini akan membuat PostController dengan perintah artisan.
Selanjutnya, buka app/http/controller/PostController.php. dan perbarui metode berikut ke dalam file controller Anda:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
use App\Models\Post;
use DataTables;
class PostController extends Controller
{
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index(Request $request)
{
if ($request->ajax()) {
$model = Post::with('users');
return DataTables::eloquent($model)
->addColumn('users', function (Post $post) {
return $post->users->name;
})
->toJson();
}
return view('users');
}
}
Langkah 7 - Buat File Blade
Pada langkah ini, Kunjungi direktori resources/views dan buat file baru users.blade.php.
Setelah itu, perbarui kode html dan javascript berikut ke dalam file view blade Anda:
<!DOCTYPE html>
<html>
<head>
<title>Laravel 8 Datatables with Relationship Tutorial - Medikre.com</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" />
<link href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css" rel="stylesheet">
<link href="https://cdn.datatables.net/1.10.19/css/dataTables.bootstrap4.min.css" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.0/jquery.validate.js"></script>
<script src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
<script src="https://cdn.datatables.net/1.10.19/js/dataTables.bootstrap4.min.js"></script>
<style type="text/css">
.paginate_button{
padding: 0px !important;
}
</style>
</head>
<body>
<div class="container" style="margin-top: 100px;margin-bottom: 100px; ">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header bg-info text-white">Laravel Datatables with Relationship Tutorial - Medikre.com</div>
<div class="card-body">
@if (session('status'))
<div class="alert alert-success" role="alert">
{{ session('status') }}
</div>
@endif
<table class="table table-bordered data-table">
<thead>
<tr>
<th>No</th>
<th>Title</th>
<th>Auther</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
$('.data-table').DataTable({
processing: true,
serverSide: true,
ajax: "{{ route('posts.index') }}",
columns: [
{data: 'id', name: 'id'},
{data: 'title', name: 'title'},
{data: 'users', name: 'users.name'},
]
});
});
</script>
</body>
</html>
Langkah 8 - Jalankan Server Pengembangan
Pada langkah ini, Jalankan perintah php artisan serve
di terminal untuk memulai server secara lokal:
php artisan serve
Kemudian buka browser Anda dan tekan url berikut di atasnya:
http://127.0.0.1:8000/posts
Kesimpulan
Laravel 8 datatables dengan contoh reletionship, Anda telah belajar bagaimana menggunakan hubungan pada dataTables dan juga bagaimana kolom filter datatables pada suatu hubungan.
laravel 8 laravel laravel datatable