i80586 / laravel-form-fields
Laravel form fields generator - for admin panels
Installs: 1 085
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 1
Forks: 1
Open Issues: 0
pkg:composer/i80586/laravel-form-fields
Requires
- php: >=8.3
Requires (Dev)
- phpunit/phpunit: ^10.5
README
A fluent form field generator for Laravel
🚀 About
laravel-form-fields provides a fluent, expressive API for generating form fields in Laravel.
Version 2 introduces a builder-style syntax, replacing array-based configuration with readable method chaining.
📋 Requirements
- PHP >= 8.3
- Laravel >= 10
📦 Installation
composer require i80586/laravel-form-fields
Basic usage
{!! form()->input('name') !!}
Output:
<label for="name">Name</label> <input type="text" name="name" id="name" class="form-control">
Setting default value:
{!! form()->input('name', 'John') !!}
This will output:
<label for="name">Name</label> <input type="text" name="name" id="name" class="form-control" value="John">
Change the text of the default label
{!! form()->input('name')->label('Your name') !!}
This will output:
<label for="name">Your name</label> <input type="text" name="name" id="name" class="form-control">
Multiple CSS classes
You can pass multiple CSS classes in a single call:
{!! form()
->input('name', 'John')
->label(false)
->required()
->class('form-control', 'name-select')
!!}
or
{!! form()
->input('name', 'John')
->label(false)
->required()
->class(['form-control', 'name-select'])
!!}
This will output:
<input type="text" name="name" id="name" value="John" class="form-control name-select" required>
Select
{!! form()->select('city', 1, [1 => 'Baku'], 'Choose city') !!}
This will output:
<label for="city">City</label> <select name="city" id="city" class="form-select"> <option value>Choose city</option> <option value="1" selected>Baku</option> </select>
Old input support
Form fields automatically use Laravel old() values after validation errors.
You do not need to manually call old(); the previous value will be inserted automatically.
Use the following variant:
{!! form()->input('email', 'some@email.com') !!}
instead of:
❌
{!! form()->input('email', old('email', 'some@email.com')) !!}
Philosophy
-
Fluent API
-
Explicit over magic
-
Laravel-native behavior
-
Clean and predictable HTML output
License
MIT License