PHPackages                             laraplus/form - 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. laraplus/form

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

laraplus/form
=============

A powerful package for building forms in Laravel.

43.5k↓50%6PHPCI failing

Since Feb 12Pushed 3mo ago3 watchersCompare

[ Source](https://github.com/laraplus/form)[ Packagist](https://packagist.org/packages/laraplus/form)[ RSS](/packages/laraplus-form/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Laraplus form
=============

[](#laraplus-form)

This package is currently in active development. No stable release is available yet.

Examples
--------

[](#examples)

### Usage in Blade

[](#usage-in-blade)

You can create a form on-the-fly in Blade:

```
{!! Form::open('login')->action('/login')->method('post') !!}
{!! Form::text('username')->label('Username') !!}
{!! Form::password('password')->label('Password') !!}
{!! Form::submit('submit')->text('Login') !!}
{!! Form::close() !!}
```

### Usage in Form Requests

[](#usage-in-form-requests)

Use the FormBuilder trait:

```
use Illuminate\Foundation\Http\FormRequest;
use Laraplus\Form\Helpers\FormBuilder;

class LoginForm extends FormRequest
{
    use FormBuilder;

    public function rules()
    {
        return [
            'username' => 'required',
            'password' => 'required|login' // login is a custom rule
        ];
    }

    public function authorize()
    {
        return true;
    }

    public function form()
    {
        $form = $this->getFormBuilder();

        $form->open('login')->action('/login')->method('post');
        $form->text('username')->label('Username');
        $form->password('password')->label('Password');
        $form->submit('submit')->text('Login');
        $form->close();

        return $form;
    }
}
```

In your controller you can then pass the form to the view. The form request will not be validated for GET actions:

```
public function index(LoginForm $form)
{
    return view('login', ['form' => $form->form()]);
}
```

In your view, you can output the entire form at once:

```
{!! $form !!}
```

Or field by field:

```
{!! $form->open !!}
{!! $form->username !!}
{!! $form->password !!}
{!! $form->submit !!}
{!! $form->close !!}
```

When outputting a field an entire form-group will be returned, but you can further fine tune the result:

```
{!! $form->open !!}

{!! $form->username->label() !!}
{!! $form->username->field() !!}
{!! $form->username->error() !!}

{!! $form->password->label() !!}
{!! $form->password->field() !!}
{!! $form->password->error() !!}

{!! $form->submit->addClass('btn-primary') !!}

{!! $form->close !!}
```

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance55

Moderate activity, may be stable

Popularity27

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity12

Early-stage or recently created project

 Bus Factor1

Top contributor holds 94.9% 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/977c1e237621d1621bd391062fdde36c940d7f58b26c635e94d34d2fee68ebc5?d=identicon)[acasar](/maintainers/acasar)

---

Top Contributors

[![acasar](https://avatars.githubusercontent.com/u/6329543?v=4)](https://github.com/acasar "acasar (131 commits)")[![npapez](https://avatars.githubusercontent.com/u/36475316?v=4)](https://github.com/npapez "npapez (4 commits)")[![BlazOrazem](https://avatars.githubusercontent.com/u/5699173?v=4)](https://github.com/BlazOrazem "BlazOrazem (1 commits)")[![schtr4jh](https://avatars.githubusercontent.com/u/385801?v=4)](https://github.com/schtr4jh "schtr4jh (1 commits)")[![spletnaPOSTAJA](https://avatars.githubusercontent.com/u/13397717?v=4)](https://github.com/spletnaPOSTAJA "spletnaPOSTAJA (1 commits)")

### Embed Badge

![Health badge](/badges/laraplus-form/health.svg)

```
[![Health](https://phpackages.com/badges/laraplus-form/health.svg)](https://phpackages.com/packages/laraplus-form)
```

###  Alternatives

[vishnubob/wait-for-it

Pure bash script to test and wait on the availability of a TCP host and port

9.8k157.6k3](/packages/vishnubob-wait-for-it)[ddeboer/transcoder

Better encoding conversion for PHP

16705.6k10](/packages/ddeboer-transcoder)[nodejs-php-fallback/nodejs-php-fallback

Allow you to call node.js module or scripts throught PHP and call a fallback function if node.js is not available

17454.7k8](/packages/nodejs-php-fallback-nodejs-php-fallback)[fjw/color-compare

A library for converting colors (Hex, RGB, HSL, CIELAB (LAB), DIN-99) and calculating color distances based on DIN-99.

1310.0k](/packages/fjw-color-compare)

PHPackages © 2026

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