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 Kolom | Jenis Input | Validasi |
---|---|---|
string | text, textarea, email, telephone, password, url, search, file, hidden | required, string, min, max |
boolean | radio, select, datalist | required, boolean |
char | text, color, week, email, telephone, password, url, search, file, hidden | required, string, min, max |
date | date, month | required, date |
time | time | required, date |
year, foreignId | select, datalist | required, numeric |
dateTime | datetime-local | required, date |
float, decimal, double | number, range, hidden | required, numeric |
enum | select, radio, datalist | required, in |
integer, tinyInteger, mediumInteger, bigInteger | number, range, hidden | required, numeric |
text, tinyText, mediumText, longText | text, textarea, email, telephone, password, url, search, file, hidden | required, 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
Setelah membuat modul baru terkadang mungkin kamu akan mendapati 404
, jika iya, kamu hanya perlu melakukan refresh pada browser mu.
Membuat relasi model ​
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 tabelusers
maka harususer_id
.
- Harus merupakan nama tabel tetapi dalam bentuk tunggal +
- 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
- Pada ubah/edit:
- Ubah menjadi
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 ​
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:
"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
php artisan storage:link
Atau jika kamu ingin menggunakan s3
untuk menyimpan gambar, pastikan kamu melihat dokumentasinya disini
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:
[
'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
- Jalankan perintah berikut
php artisan install:api
- Pastikan file
routes/api.php
ada - Tambahkan atau hapus komentar kode berikut pada
bootstrap/app.php
file
->withRouting(
api: __DIR__ . '/../routes/api.php',
web: __DIR__ . '/../routes/web.php',
commands: __DIR__ . '/../routes/console.php',
health: '/up',
)
- Jika kamu butuh modul autentikasi, seperti login dan register, jalankan perintah berikut (opsional)
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