Skip to content

Cara Pakai yang Semoga Benar ​

Buat CRUD untuk pertama kalinya ​

Akses pada browser kamu /generators/create jika kamu menggunkan versi lengkap /simple-generators/create untuk versi sederhana

Di bawah ini adalah tabel tentang jenis input & validasi yang didukung saat kamu menggunakan beberapa jenis kolom.

Jenis KolomJenis InputValidasi
stringtext, textarea, email, telephone, password, url, search, file, hiddenrequired, string, min, max
booleanradio, select, datalistrequired, boolean
chartext, color, week, email, telephone, password, url, search, file, hiddenrequired, string, min, max
datedate, monthrequired, date
timetimerequired, date
year, foreignIdselect, datalistrequired, numeric
dateTimedatetime-localrequired, date
float, decimal, doublenumber, range, hiddenrequired, numeric
enumselect, radio, datalistrequired, in
integer, tinyInteger, mediumInteger, bigIntegernumber, range, hiddenrequired, numeric
text, tinyText, mediumText, longTexttext, textarea, email, telephone, password, url, search, file, hiddenrequired, string, min, max

INFO

Validasi required akan berubah menjadi nullable jika kamu tidak mencentang checkbox yang terdapat pada form, jika ada jenis input password akan otomatis ditambahkan validasi confirmed, min:1|max:100 untuk teks dan email|unique untuk jenis input email.

INFO

404 Laravel

Setelah membuat modul baru terkadang mungkin kamu akan mendapati 404, jika iya, kamu hanya perlu melakukan refresh pada browser mu.

Membuat relasi model ​

Pembuatan Relasi

Sayangnya Generator saat ini hanya mendukung One To Many (Inverse) / Belongs To.

Terdapat beberapa aturan yang harus diikuti jika kamu ingin membuat relasi:

  • Field name:
    • Harus merupakan nama tabel tetapi dalam bentuk tunggal + _id, misalnya: jika kamu memiliki tabel users maka harus user_id.
  • Column Type:
    • Ubah menjadi foreignId.
    • Untuk constrains atau nama model terkait, kamu bisa mengisi dengan nama Model (secara otomatis berubah menjadi jamak).
    • Aksi pada ubah/edit & penghapusan:
      • Pada ubah/edit: nothing, cascade, restrict
      • Pada penghapusan: nothing, cascade, restrict, null

INFO

Pastikan tabel & model terkait sudah ada, jika tidak maka kolom yang dipilih untuk ditampilkan di <select> atau <datalist> adalah id dan akan mendapati error ketika kamu mengakses halaman terkait, secara default kolom yang dipilih adalah kolom kedua di tabel relasi.

Membuat Unggah File ​

Unggah File

Atur Column Type menjadi string, Input Type menjadi file, pilih jenis file (saat ini hanya mendukung gambar), isi ukuran maksimal, dan nilai default bersifat opsional dan harus berupa tautan yang valid

Juga kami menggunakan Intervention Image untuk memanipulasi gambar yang diunggah semua konfigurasi untuk gambar kamu dapat melihatnya di config/generator.php

Konfigurasi gambar default:

php
"image" => [
    /**
    * Path for store the image.
    *
    * Available options:
    * 1. public
    * 2. storage
    * 3. s3
    */
    "disk" => "storage",  

    /**
    * Will used if image is nullable and default value is null.
    */
    "default" => "https://via.placeholder.com/350?text=No+Image+available",  

    /**
    * Crop the uploaded image using intervention image.
    */
    "crop" => true,  

    /**
    * When set to true the uploaded image aspect ratio will still original.
    */
    "aspect_ratio" => true, 

    /**
    * Crop image size.
    */
    "width" => 500, 
    "height" => 500, 
],

INFO

Jika kamu menggunakan storage untuk menyimpan gambar, pastikan kamu menjalankan perintah dibawah ini

sh
php artisan storage:link

Atau jika kamu ingin menggunakan s3 untuk menyimpan gambar, pastikan kamu melihat dokumentasinya disini

Membuat menu Sidebar ​

Membuat menu Sidebar

INFO

Fitur ini hanya tersedia di versi lengkap.

kamu dapat dengan mudah membuat menu Sidebar dinamis dengan hanya beberapa input. semua konfigurasi menu Sidebar berada di config/generator.php

Bagaimana jika kamu tidak membutuhkan menu Sidebar dinamis?, kamu hanya ingin membuat menu langusng pada kode .blade. ya, tenang kami sudah menyediakannya, kamu dapat melihatnya disni.

Hak Akses (Role & Permissions) ​

Saat kamu menggunakan versi lengkap, setelah membuat modul baru akan secara otomatis membuatkan beberapa Permissions dan mengaitkannya ke Role admin. semua konfigurasi permissions disimpan di config/permission.php

Berikut contohnya:

php
[
    'group' => 'products',  
    'access' => [  
        'product view',  
        'product create',  
        'product edit',  
        'product delete'
    ]
],

Membuat API CRUD ​

Sebelum kamu menggunakan fitur ini, pastikan kamu sudah meng-install dan membaca dokumentasi terbaru Laravel 11 mengenai API

  1. Jalankan perintah berikut
sh
php artisan install:api
  1. Pastikan file routes/api.php ada
  2. Tambahkan atau hapus komentar kode berikut pada bootstrap/app.php file
php
->withRouting(
    api: __DIR__ . '/../routes/api.php', 
    web: __DIR__ . '/../routes/web.php',
    commands: __DIR__ . '/../routes/console.php',
    health: '/up',
)
  1. Jika kamu butuh modul autentikasi, seperti login dan register, jalankan perintah berikut (opsional)
sh
php artisan generator:publish-api

Perintah ini akan menghasilkan beberapa kode di app/Http/Controllers/Api/AuthController, app/Http/Requests/Auth, dan routes/api.php

Lalu menuju /generators-api/create untuk versi lengkap dan /simple-generators/create untuk versi sederhana, sisanya lakukan hal yang sama seperti kamu membuat CRUD diatas.

INFO

Jika kamu menggunakan Generator API dan versi lengkap, kamu tidak dapat membuat menu Sidebar