Setelah itu, Anda dapat mendefinisikan properti, hubungan, dan lainnya di dalam model
Post . Misalnya:
// app/Models/Post.php
namespace App\\Models;
use Illuminate\\Database\\Eloquent\\Model;
2. View:
View adalah bagian dari aplikasi yang menangani tampilan. Dalam Laravel, tampilan
menggunakan template Blade. Anda dapat membuat tampilan Blade di folder
resources/views .
@extends('layouts.app')
@section('content')
<h1>Daftar Postingan</h1>
@foreach ($posts as $post)
<h3>{{ $post->title }}</h3>
<p>{{ $post->content }}</p>
@endforeach
@endsection
3. Controller:
Controller dalam Laravel digunakan untuk mengelola logika bisnis dan menghubungkan
model dengan tampilan. Buatlah controller dengan perintah:
// app/Http/Controllers/PostController.php
namespace App\\Http\\Controllers;
use Illuminate\\Http\\Request;
use App\\Models\\Post;
4. Routing:
Selanjutnya, Anda perlu mendefinisikan rute dalam routes/web.php :
// routes/web.php
use Illuminate\\Support\\Facades\\Route;
use App\\Http\\Controllers\\PostController;
Ini akan mengarahkan permintaan ke metode index dalam PostController saat Anda
mengunjungi /posts .
5. Tampilan Umum:
Terakhir, pastikan Anda telah membuat tampilan dasar atau layout yang digunakan oleh
tampilan Anda. Ini biasanya disimpan dalam resources/views/layouts/app.blade.php .
Setelah Anda memiliki semua komponen ini, Anda dapat mengakses daftar postingan
dengan mengunjungi /posts pada aplikasi Anda.
Ini adalah dasar dari implementasi MVC dalam Laravel. Anda bisa memperluasnya
dengan menambahkan fitur-fitur seperti pembuatan, pengeditan, dan penghapusan
postingan serta validasi data.
Validasi Form:
Saat membuat atau mengedit postingan, Anda mungkin perlu melakukan validasi data
yang masuk. Anda bisa menggunakan Laravel's built-in validation. Misalnya, dalam
metode store di PostController , Anda dapat menambahkan validasi seperti ini:
Post::create([
'title' => $request->input('title'),
'content' => $request->input('content'),
]);
return redirect('/posts');
}
POST:
Anda kemudian harus menambahkan rute dan metode dalam controller untuk
menangani penambahan postingan baru.
Edit dan Hapus Postingan:
Untuk mengedit dan menghapus postingan, Anda perlu membuat tampilan yang sesuai,
metode dalam controller, dan rute yang sesuai. Misalnya, Anda bisa membuat tampilan
resources/views/posts/edit.blade.php dan menambahkan rute dan metode dalam
Membuat Middleware:
Middleware digunakan untuk mengecek permintaan sebelum mencapai metode dalam
controller. Anda dapat menggunakan middleware untuk autentikasi pengguna atau
otorisasi sebelum mengizinkan akses ke fitur tertentu.
Route::middleware(['auth'])->group(function () {
Route::get('/posts/{post}/edit', [PostController::class, 'edit']);
Route::delete('/posts/{post}', [PostController::class, 'destroy']);
});
Pagination:
Jika daftar postingan Anda tumbuh besar, Anda mungkin ingin menggunakan fitur
pagination untuk membatasi jumlah postingan yang ditampilkan dalam satu halaman.
$posts = Post::paginate(10);
mix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css')
.sourceMaps();
Dalam contoh di atas, mix.js dan mix.sass digunakan untuk mengkompilasi file
JavaScript dan Sass Anda. Hasilnya akan disimpan di direktori public/js dan
public/css .
3. Menjalankan Mix:
Setelah Anda mengkonfigurasi Mix, jalankan perintah berikut untuk mengompilasi
sumber daya Anda:
Anda juga dapat menggunakan perintah npm run watch untuk mengawasi perubahan
dalam file sumber daya Anda dan mengompilasinya secara otomatis ketika terjadi
perubahan.
4. Menggunakan Hasil Kompilasi:
Setelah Anda menjalankan Mix, file hasil kompilasi akan tersedia di direktori public/js
dan public/css . Anda dapat menghubungkan file ini dalam tampilan Blade Anda dengan
menggunakan fungsi mix() seperti ini:
Project
cd nama-proyek
npm install
mix.js('resources/js/app.js', 'public/js')
Middleware (Opsional)
Laravel menyediakan middleware untuk mengecek permintaan sebelum mencapai
metode dalam controller. Anda dapat menggunakan middleware untuk mengamankan
rute atau mengaplikasikan filter tertentu.
Route::middleware(['auth'])->group(function () {
// Rute yang memerlukan autentikasi
});
Pagination (Opsional)
$posts = Post::paginate(10);