PHPackages                             elgibor-solution/laravel-form-builder - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. elgibor-solution/laravel-form-builder

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

elgibor-solution/laravel-form-builder
=====================================

A Laravel package for managing form builder resources.

1.3.3(1mo ago)01.2k↑31.1%Apache-2.0PHPPHP &gt;=8.2

Since Feb 18Pushed 1w ago1 watchersCompare

[ Source](https://github.com/elgiborsolution/laravel-form-builder)[ Packagist](https://packagist.org/packages/elgibor-solution/laravel-form-builder)[ RSS](/packages/elgibor-solution-laravel-form-builder/feed)WikiDiscussions main Synced 2w ago

READMEChangelog (10)Dependencies (25)Versions (37)Used By (0)

Laravel Form Builder
====================

[](#laravel-form-builder)

Laravel Form Builder is a backend package for building dynamic data sources, reusable API configurations, and form-driven CRUD flows on top of Laravel.

It is designed for teams that want a configurable, JSON-friendly builder layer without writing a new controller for every use case.

Live Demo
---------

[](#live-demo)

GitHub Repository
-----------------

[](#github-repository)

Table of Contents
-----------------

[](#table-of-contents)

- [Features](#features)
- [Installation](#installation)
- [Quick Start](#quick-start)
- [Documentation](#documentation)
- [Architecture](#architecture)
- [Support](#support)

Features
--------

[](#features)

- Data Source builder
- API Builder
- Form Builder
- Runtime variables
- Before execute hooks
- After execute listeners
- Parent and child table mapping
- Child update key support
- LOOP\_INSERT array handling
- Route parameter expressions
- JSON field auto decoding
- Table-based and custom query data sources
- Filtering, pagination, and automatic ordering
- Import and export
- Validation rules and unique validation
- Soft delete support
- File upload field support
- Package Builder `database_scope` filtering and access validation

Installation
------------

[](#installation)

### 1. Require the package

[](#1-require-the-package)

```
composer require elgibor-solution/laravel-form-builder
```

### 2. Install the runtime registry scaffold

[](#2-install-the-runtime-registry-scaffold)

```
php artisan datasources:install
```

This command creates `app/Runtime/AppRuntimeVariableRegistry.php` only when it does not already exist. No `AppServiceProvider` changes or manual registry binding are needed.

If you also want the package config published during install, use:

```
php artisan datasources:install --publish-config
```

### 3. Publish migrations

[](#3-publish-migrations)

```
php artisan vendor:publish --provider="ESolution\DataSources\Providers\DataSourcesServiceProvider" --tag=datasources-migrations
```

### 4. Run migrations

[](#4-run-migrations)

```
php artisan migrate
```

### 5. Verify route prefix

[](#5-verify-route-prefix)

By default, package routes are registered under the `api` prefix. You can adjust this in `config/datasources.php` or with environment variables such as:

```
DATASOURCES_ROUTE_PREFIX=api
DATASOURCES_ROUTE_VERSION=
```

### 6. Configure the package database connection

[](#6-configure-the-package-database-connection)

Set the connection the package should use for its models, queries, and migrations:

```
LARAVEL_FORM_BUILDER_DB_CONNECTION=tenant
```

The package falls back to `DB_CONNECTION` when this variable is not set. You can also read the resolved value from config:

```
config('datasources.database_connection')
```

Quick Start
-----------

[](#quick-start)

1. Create a data source for your table or custom SQL.
2. Create an API config if you need a public dynamic endpoint.
3. Use the form builder to define fields and bind select options.
4. Call the generated endpoint from your frontend or server-to-server integration.
5. Use `X-Tenant` to switch Package Builder scope automatically between `central` and `tenant` records.

Example runtime request:

```
GET /api/data-source/users-list/query?page=1&per_page=10
```

Documentation
-------------

[](#documentation)

- [Installation](docs/installation.md)
- [Getting Started](docs/getting-started.md)
- [Runtime Variables](docs/runtime-variables.md)
- [Data Source](docs/data-source.md)
- [Data API Builder](docs/data-api-builder.md)
- [Form Builder](docs/form-builder.md)
- [Import / Export](docs/import-export.md)
- [Authentication](docs/authentication.md)
- [Examples](docs/examples.md)
- [Troubleshooting](docs/troubleshooting.md)
- [FAQ](docs/faq.md)

Architecture
------------

[](#architecture)

The package is organized around a small set of backend layers:

- `Controllers` accept management requests for builders and runtime API requests.
- `Models` store the configuration records such as data sources, API configs, listeners, permissions, and mappings.
- `Services` turn configuration into executable queries.
- `Support` classes resolve dynamic routes, database scope, and endpoint lookups.
- `Providers` register routes, migrations, and configuration.

High-level flow:

1. A developer creates a builder configuration.
2. The configuration is persisted in Laravel models and database tables.
3. The runtime route resolver finds the matching API config or data source.
4. The query service validates input, builds SQL or CRUD payloads, and returns the response.

Support
-------

[](#support)

If you are documenting the package for your team, start with:

1. [Getting Started](docs/getting-started.md)
2. [Data API Builder](docs/data-api-builder.md)
3. [Data Source](docs/data-source.md)
4. [Runtime Variables](docs/runtime-variables.md)

###  Health Score

50

—

FairBetter than 95% of packages

Maintenance96

Actively maintained with recent releases

Popularity19

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 92.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~15 days

Recently: every ~4 days

Total

34

Last Release

32d ago

PHP version history (2 changes)1.0.0PHP &gt;=8.0

1.0.1PHP &gt;=8.2

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/5470172?v=4)[esolution](/maintainers/esolution)[@esolution](https://github.com/esolution)

---

Top Contributors

[![bayuelgibor](https://avatars.githubusercontent.com/u/162445024?v=4)](https://github.com/bayuelgibor "bayuelgibor (116 commits)")[![elgibor-solution](https://avatars.githubusercontent.com/u/783039?v=4)](https://github.com/elgibor-solution "elgibor-solution (9 commits)")

### Embed Badge

![Health badge](/badges/elgibor-solution-laravel-form-builder/health.svg)

```
[![Health](https://phpackages.com/badges/elgibor-solution-laravel-form-builder/health.svg)](https://phpackages.com/packages/elgibor-solution-laravel-form-builder)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3345.4M354](/packages/psalm-plugin-laravel)[api-platform/laravel

API Platform support for Laravel

58190.1k21](/packages/api-platform-laravel)[mike-bronner/laravel-model-caching

Automatic caching for Eloquent models.

2.4k161.4k2](/packages/mike-bronner-laravel-model-caching)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

265.2k](/packages/aedart-athenaeum)[fleetbase/core-api

Core Framework and Resources for Fleetbase API

1239.7k25](/packages/fleetbase-core-api)[forjedio/inertia-table

Backend-driven dynamic tables for Laravel + Inertia.js

272.0k](/packages/forjedio-inertia-table)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
