nohara/laravel-genpack
Composer 安装命令:
composer require nohara/laravel-genpack
包简介
Dynamic Form Builder and Fluent CRUD Generator for Laravel
README 文档
README
laravel-genpack adalah Laravel package untuk membuat Dynamic Form Builder dan Fluent CRUD Generator secara deklaratif dengan dukungan Ajax Modal, SweetAlert2, Yajra DataTables, dan multi-theme styling (Classic Bootstrap 5 & Porto Admin).
Fitur Utama
- Fluent CRUD Builder: Definisikan kolom, form input, dan filter pencarian secara deklaratif langsung dari Controller Anda.
- Base Controller & Traits Bawaan: Pewarisan kelas controller dasar (
BaseCrudController) serta trait operasi modular (ListOperation,CreateOperation,UpdateOperation,DeleteOperation) langsung dari package. - Dynamic Ajax Form Modal: Pengisian form tambah & edit data menggunakan modal pop-up berbasis AJAX.
- Dynamic List Table: Integrasi Yajra DataTables dengan rendering kolom dinamis dan filter pencarian.
- Visual GUI Builder: Akses halaman visual builder interaktif langsung di dalam proyek Laravel Anda untuk mendesain kolom secara instan.
- Multi-Theme Support: Mendukung styling tema Classic Bootstrap 5 dan Porto Admin 2.2 secara otomatis.
- Relational Field Support: Dukungan drop-down Select2, Select2 Dependent (Dropdown Terikat), Input File (Upload), dan Dynamic List (HasMany).
Instalasi
1. Install Package via Composer
Jalankan perintah berikut di direktori proyek Laravel Anda:
composer require nohara/laravel-genpack
2. Publikasikan Aset & Views Package
Ekspor berkas tampilan (blade) dan aset javascript penunjang DataTable ke dalam proyek utama Anda:
# Publikasikan views (tabel utama & form modal) php artisan vendor:publish --tag=genpack-views # Publikasikan asset javascript (_list.js) php artisan vendor:publish --tag=genpack-assets
File view akan disalin ke folder resources/views/vendor/genpack/ dan berkas JS ke public/vendor/genpack/.
Cara Penggunaan
1. Buat Controller Baru
Buat controller baru (misal: app/Http/Controllers/MahasiswaCrudController.php) yang mewarisi BaseCrudController bawaan package:
<?php namespace App\Http\Controllers; use Nohara\Genpack\Http\Controllers\BaseCrudController; use Nohara\Genpack\Http\Controllers\Operations\ListOperation; use Nohara\Genpack\Http\Controllers\Operations\CreateOperation; use Nohara\Genpack\Http\Controllers\Operations\UpdateOperation; use Nohara\Genpack\Http\Controllers\Operations\DeleteOperation; use App\Models\Mahasiswa; class MahasiswaCrudController extends BaseCrudController { // Gunakan Trait Operations secara modular sesuai kebutuhan use ListOperation, CreateOperation, UpdateOperation, DeleteOperation; protected function setup() { // 1. Konfigurasi Entitas & Model $this->crud->setModel(Mahasiswa::class); $this->crud->setEntityNameStrings('Mahasiswa', 'Mahasiswa'); $this->crud->setRoutePrefix('mahasiswa'); $this->crud->setThemeStyle('porto'); // Opsi: 'classic' atau 'porto' // 2. Definisikan Kolom Tabel (DataTables) $this->crud->addColumn([ 'name' => 'nim', 'label' => 'NIM', 'type' => 'text', ]); $this->crud->addColumn([ 'name' => 'nama', 'label' => 'Nama Lengkap', 'type' => 'text', ]); // 3. Definisikan Field Input Form (Modal Form) $this->crud->addField([ 'name' => 'nim', 'label' => 'NIM', 'type' => 'text', 'placeholder' => 'Masukkan NIM...', 'required' => true, 'col' => 'col-md-6', ]); $this->crud->addField([ 'name' => 'nama', 'label' => 'Nama Lengkap', 'type' => 'text', 'placeholder' => 'Masukkan nama lengkap...', 'required' => true, 'col' => 'col-md-6', ]); } }
2. Daftarkan Rute CRUD
Tambahkan rute di file routes/web.php Anda:
use App\Http\Controllers\MahasiswaCrudController; Route::get('mahasiswa', [MahasiswaCrudController::class, 'index'])->name('mahasiswa.index'); Route::get('mahasiswa/data', [MahasiswaCrudController::class, 'data'])->name('mahasiswa.data'); Route::get('mahasiswa/create', [MahasiswaCrudController::class, 'create'])->name('mahasiswa.create'); Route::post('mahasiswa', [MahasiswaCrudController::class, 'store'])->name('mahasiswa.store'); Route::get('mahasiswa/{id}/edit', [MahasiswaCrudController::class, 'edit'])->name('mahasiswa.edit'); Route::put('mahasiswa/{id}', [MahasiswaCrudController::class, 'update'])->name('mahasiswa.update'); Route::delete('mahasiswa/{id}', [MahasiswaCrudController::class, 'destroy'])->name('mahasiswa.destroy');
Visual GUI Builder (Interactive Editor)
Package ini menyertakan visual builder interaktif agar Anda dapat merancang kolom form langsung dari antarmuka visual browser.
Cara Memasang Builder:
- Daftarkan rute di file
routes/web.phpAnda:Route::get('genpack/builder', function () { return view('vendor.genpack.builder'); });
- Pastikan Anda telah mempublikasikan view package:
php artisan vendor:publish --tag=genpack-views
- Akses builder di browser Anda:
http://localhost:8000/genpack/builder. Builder akan otomatis mendeteksi kelas model Anda di direktoriapp/Models/!
Lisensi
Package ini dilisensikan di bawah MIT License.
nohara/laravel-genpack 适用场景与选型建议
nohara/laravel-genpack 是一款 基于 Blade 开发的 Composer 扩展包,目前已累计 0 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 07 月 15 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 nohara/laravel-genpack 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 nohara/laravel-genpack 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 nohara/laravel-genpack 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
This module allows drag & drop grouping of items in a GridField
Adds text size controls and text-to-speech controls to Flarum discussion content.
Native Blade date, datetime, and date range pickers.
Symfony and Flysystem integration for the maintained KCFinder continuation.
Laravel integration for the maintained KCFinder continuation.
PHPStan rules shared across KnpLabs organization projects
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-07-15