Istilah dan padanan kata
Referensi PandaBear tersedia di locale Indonesia, tetapi istilah teknis tetap mengikuti nama yang dipakai di kode. Halaman ini menjelaskan arti setiap istilah, dan mengapa sebagian besar sengaja tidak diterjemahkan.
Aturan yang dipakai dokumentasi ini
Istilah yang Anda ketik di dalam kode dibiarkan dalam bahasa Inggris — Resource, Panel, Action, Widget. Menerjemahkan nama kelas hanya membuat Anda harus menerjemahkannya balik saat menulis kode. Yang diterjemahkan adalah penjelasannya, bukan namanya.
Istilah inti
| Istilah | Arti | Halaman |
|---|---|---|
| Panel | Satu prefix URL beserta navigasi, middleware, dan aturan aksesnya sendiri. Satu aplikasi boleh punya beberapa | Panel |
| Panel provider | Kelas yang mendefinisikan sebuah panel, mirip service provider Laravel. AdminPanelProvider → id admin | Penyedia panel |
| Resource | Satu model Eloquent yang ditampilkan di dalam satu panel: tabel, form, halaman, dan query-nya | Membuat resource |
| Schema | Deskripsi PHP tentang apa yang dirender. Ada FormSchema, TableSchema, InfolistSchema | Dasar FormSchema |
| Field | Satu input di dalam form. Namanya sekaligus menjadi kunci request, kunci aturan validasi, dan kolom database | Dasar FormSchema |
| Column | Satu kolom di tabel. Menentukan apakah kolom itu boleh dicari, diurutkan, atau disembunyikan | Kolom |
| Action | Operasi milik backend yang bisa diminta frontend berdasarkan nama. Tombolnya menyeberang; handler-nya tidak | Dasar action |
| Widget | Kotak di dasbor: angka, grafik, tabel, atau komponen Vue Anda sendiri | Widget |
| Discovery | Proses memindai direktori untuk menemukan resource, page, dan widget tanpa perlu didaftarkan satu per satu | Discovery |
| Policy | Kelas policy Laravel. Panel mendelegasikan seluruh keputusan izin ke sana | Otorisasi |
| Tenancy | Membatasi isi panel ke satu tenant — satu database bersama, atau satu database per tenant | Konsep tenancy |
| Relation manager | Tabel anak di halaman sebuah record, untuk mengelola relasinya | Relation manager |
| Infolist | Tampilan detail yang hanya bisa dibaca, pasangan dari form | Infolist |
| Plugin | Paket berisi konfigurasi panel yang bisa dipakai ulang di banyak proyek | Konsep plugin |
Kata yang sering muncul di kalimat penjelasan
| Inggris | Maksudnya di sini |
|---|---|
| scaffold | Membuatkan kerangka file otomatis — hasil make:panel, make:panel-resource |
| publish | Menyalin file dari paket ke aplikasi Anda, lewat vendor:publish |
| discovered | Ditemukan otomatis oleh discovery, tanpa perlu Anda daftarkan |
| registered | Didaftarkan secara eksplisit, biasanya di config/panda-panel.php |
| hydrate / dehydrate | Mengisi form dari record, dan sebaliknya: mengubah input tervalidasi menjadi atribut yang disimpan |
| dehydrated | Field yang nilainya ikut disimpan. Field yang tidak dehydrate dirender tapi tidak ditulis ke database |
| whitelist / allowlist | Daftar yang diizinkan. Skema tabel adalah whitelist: kolom yang tidak dideklarasikan tidak bisa diurutkan atau dicari |
| guard | Guard autentikasi Laravel — menentukan model user mana yang dipakai |
| stale | Basi. Manifest yang basi berarti panel:cache perlu dijalankan ulang |
| outstanding | Pekerjaan yang tersisa. Installer menyebutnya di akhir, dan itu bukan error |
| inert action | Action yang tidak melakukan apa pun — tanpa handler, URL, form, atau modal. Ditolak saat dideklarasikan |
| soft delete | Penghapusan lunak Laravel: baris ditandai terhapus, bukan dihapus permanen |
| record | Satu baris data / satu instance model |
| payload | Data yang dikirim ke browser sebagai props Inertia |
Pesan error yang sering ditemui
| Pesan | Artinya | Perbaikan |
|---|---|---|
PanelSchemaException: model not set | $model belum diisi di kelas resource | Tambahkan protected static string $model = Product::class; |
PanelSchemaException: duplicate column | Dua kolom memakai nama yang sama | Nama kolom adalah kunci untuk sel, visibilitas, pencarian, dan sorting sekaligus |
PanelSchemaException: unknown default sort | defaultSort() menyebut kolom yang tidak ada di tabel | Cek ejaan; pemeriksaan ini berjalan saat halaman dirender |
PanelSchemaException: inert action | Action tanpa handler, URL, form, maupun modal | Beri action() atau url() |
PanelRegistrationException | Dua panel memakai id atau path yang sama | Ubah salah satunya, atau pisahkan dengan domain() |
| 403 di halaman resource | Gate ditanya dan menjawab tidak | Buat policy-nya: php artisan make:policy ProductPolicy --model=Product |
| 404 di URL panel | Provider belum terdaftar di config/panda-panel.php | Tambahkan barisnya; tidak ada yang memindai provider secara otomatis |
Perintah artisan
| Perintah | Fungsinya |
|---|---|
panel:install | Publikasi, scaffold panel pertama, daftarkan, dan periksa frontend |
panel:user | Membuat akun lewat model milik guard, lalu melaporkan apakah akun itu bisa masuk panel |
make:panel | Membuat panel provider baru |
make:panel-resource | Membuat resource beserta halaman, tabel, dan form-nya |
make:panel-page | Membuat halaman mandiri |
make:panel-widget | Membuat widget dasbor |
panel:cache | Membekukan hasil discovery untuk produksi |
panel:clear | Menghapus manifest, agar discovery berjalan lagi per request |
panel:icons | Membangun ulang registry ikon setelah memakai key baru |
panel:assets | Memperbarui frontend yang sudah dipublikasikan tanpa menimpa hasil edit Anda |
Referensi lengkap tiap perintah ada di referensi CLI.