Teknologi

Tutorial Mudah CRUD di Laravel 11

1340
×

Tutorial Mudah CRUD di Laravel 11

Sebarkan artikel ini

Laravel 11, sebagai versi terbaru dari framework PHP yang terkenal ini, membawa sejumlah perbaikan dan fitur baru yang memudahkan pengembangan aplikasi web. Dengan dukungan komunitas yang luas dan dokumentasi yang lengkap, Laravel 11 menawarkan toolkit yang kaya untuk membangun aplikasi web yang responsif dan mudah di-maintain.

Sebelum memulai, pastikan Anda telah menginstal Composer, PHP, dan Laravel Installer di sistem Anda. Juga, persiapkan database yang akan digunakan, misalnya MySQL atau PostgreSQL.

Instalasi Laravel

Jalankan perintah berikut untuk membuat proyek Laravel baru:

laravel new blog

Setelah itu, konfigurasikan koneksi database di file .env yang ada di root direktori proyek.

Membuat Model, View, dan Controller (MVC)

Struktur MVC Laravel mempermudah pengelolaan kode aplikasi dengan memisahkan logika aplikasi dari presentasi user interface.

1. Membuat Model

Model merepresentasikan struktur data aplikasi. Untuk membuat model beserta migration untuk tabel posts, gunakan perintah:

php artisan make:model Post -m

Setelah membuat model Post dengan migration, Anda perlu menentukan struktur tabel posts dalam database. Berikut adalah contoh kode untuk migration yang menambahkan beberapa kolom ke tabel posts.

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreatePostsTable extends Migration
{
    public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->text('content');
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::dropIfExists('posts');
    }
}

Setelah menambahkan kolom yang diperlukan, jalankan migration dengan perintah:

php artisan migrate

2. Membuat Controller

Controller PostController akan menangani request untuk operasi CRUD. Berikut adalah contoh implementasi dasar dari PostController:

namespace App\Http\Controllers;

use App\Models\Post;
use Illuminate\Http\Request;

class PostController extends Controller
{
    public function index()
    {
        $posts = Post::all();
        return view('posts.index', compact('posts'));
    }

    public function create()
    {
        return view('posts.create');
    }

    public function store(Request $request)
    {
        Post::create($request->all());
        return redirect()->route('posts.index');
    }

    public function show(Post $post)
    {
        return view('posts.show', compact('post'));
    }

    public function edit(Post $post)
    {
        return view('posts.edit', compact('post'));
    }

    public function update(Request $request, Post $post)
    {
        $post->update($request->all());
        return redirect()->route('posts.index');
    }

    public function destroy(Post $post)
    {
        $post->delete();
        return redirect()->route('posts.index');
    }
}

Ingat untuk menyesuaikan routing di web.php agar sesuai dengan controller yang telah dibuat.

3. Membuat View

Anda perlu membuat view untuk setiap operasi CRUD. Berikut adalah contoh kode untuk create dan index view:

Create View (resources/views/posts/create.blade.php):

<form action="{{ route('posts.store') }}" method="POST">
    @csrf
    <label for="title">Title:</label>
    <input type="text" name="title" id="title" required>
    
    <label for="content">Content:</label>
    <textarea name="content" id="content" required></textarea>
    
    <button type="submit">Submit</button>
</form>

Index View (resources/views/posts/index.blade.php):

@foreach ($posts as $post)
    <div>
        <h2>{{ $post->title }}</h2>
        <p>{{ $post->content }}</p>
        <a href="{{ route('posts.show', $post->id) }}">View</a>
        <a href="{{ route('posts.edit', $post->id) }}">Edit</a>
        <form action="{{ route('posts.destroy', $post->id) }}" method="POST">
            @csrf
            @method('DELETE')
            <button type="submit">Delete</button>
        </form>
    </div>
@endforeach

4. Konfigurasi Route

Tambahkan route untuk PostController di routes/web.php:

use App\Http\Controllers\PostController;

Route::resource('posts', PostController::class);

Kesimpulan

Mengimplementasikan CRUD di Laravel 11 tidak hanya memperkuat pemahaman Anda tentang framework ini, tapi juga tentang konsep-konsep pemrograman web modern. Laravel menyediakan banyak fitur yang memudahkan pengembangan aplikasi, dari routing yang mudah hingga sistem templating Blade yang fleksibel.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *