PHPackages                             vesperabr/laravel-form-components - 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. vesperabr/laravel-form-components

Abandoned → [vesperabr/laravel-components](/?search=vesperabr%2Flaravel-components)ArchivedLibrary

vesperabr/laravel-form-components
=================================

Componentes Blade para desenvolvimento rápido de formulários

1.2.0(5y ago)032MITPHPPHP &gt;=7.3

Since Aug 22Pushed 4y ago1 watchersCompare

[ Source](https://github.com/vesperabr/laravel-form-components)[ Packagist](https://packagist.org/packages/vesperabr/laravel-form-components)[ RSS](/packages/vesperabr-laravel-form-components/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependencies (1)Versions (8)Used By (0)

Laravel Components
==================

[](#laravel-components)

Conjunto de componentes Blade para desenvolvimento rápido de formulários com suporte ao [Monalisa](https://github.com/vesperabr/monalisa) e em breve a outros frameworks CSS.

Funcionalidades
---------------

[](#funcionalidades)

- Componentes para form, input, textarea, select, multi-select, checkbox e radio.
- Gerenciamento automático do [Form Method Spoofing](https://laravel.com/docs/master/routing#form-method-spoofing)
- Gerenciamento automático do [CSRF Protection](https://laravel.com/docs/master/csrf)
- Suporte ao [Monalisa](https://github.com/vesperabr/monalisa) e em breve outros frameworks CSS.
- Atribuição automática de valores.
- Re-população de valores via [old input](https://laravel.com/docs/master/requests#old-input).
- Classes dos componentes e views totalmente customizáveis.

Requisitos
----------

[](#requisitos)

- PHP 7.3
- Laravel 7

Instalação
----------

[](#instalação)

Você pode instalar este pacote pelo composer:

```
composer require vesperabr/laravel-form-components
```

Exemplo rápido
--------------

[](#exemplo-rápido)

```

    Enviar

```

Componentes
-----------

[](#componentes)

### Form

[](#form)

Por padrão o componente `` utiliza o verbo GET no atributo `method`.

Você pode informar qualquer outro verbo e o componente irá lidar automaticamente com o *method spoofing* e controle de CSRF para você.

```

    ...

```

Você pode informar normalmente qualquer outro atributo da tag ``, como por exemplo `action`, `class`, `id`, etc.

Você pode informar também o atributo `multipart`, que irá configurar automaticamente o formulário para enviar arquivos. Exemplo:

```

    ...

```

### Label

[](#label)

Na maioria dos componetes deste pacote você pode informar o atributo `label`, com isto o componente irá renderizar uma tag `` com o valor especificado.

### Input

[](#input)

Por padrão o componente `` gera uma tag `` com o atributo `type="text"`, mas você pode informar qualquer outro `type` padrão do HTML como por exemplo password, email, tel, url, number, etc.

Você pode informar outros atributos como `required`, `placeholder`, `class`, `id`, etc.

```

```

#### Tipos especiais

[](#tipos-especiais)

O componente `` aceita alguns tipos especiais como `cpf`, `cnpj`, `cpfcnpj`, `cep`, `float` e `money`. Isso irá aplicar máscaras de formatação ao campo.

```

```

#### Inserindo valores antes e depois do campo

[](#inserindo-valores-antes-e-depois-do-campo)

Você pode informar também os atributos `append` e `prepend`. Isto irá exibir valores antes ou depois do campo.

```

```

### Textarea

[](#textarea)

Este componente é bem parecido com o ``, com exceção ao suporte de máscaras e valores antes e depois.

```

```

### Select

[](#select)

O componente `` precisa que você informe o atributo `options` para que ele popule os valores que o usuário pode escolher. Este atributo deve ser um array no formato *chave =&gt; valor*.

```
$paises = [
    'br' => 'Brasil',
    'us' => 'Estados Unidos',
    'jp' => 'Japão',
];
```

```

```

Você pode definir qual(is) o(s) valor(es) que deverão vir selecionado(s) através do atributo `selected`. Se você adicionar o atributo `multiple` ao componente, lembre-se de passar um array simples com as chaves que deverão ser selecionadas.

```

```

### Checkbox

[](#checkbox)

Você pode criar um conjunto de checkboxes utilizando o componente ``. Assim como o componente `` você deve informar o atributo `options` contendo um array no formato *chave =&gt; valor*.

```

```

Você pode informar os valores que devem vir selecionados através do atributo `selected` que pode ser uma string ou um array contendo as chaves que devem ser selecionadas.

```

```

Há também o componente `` que irá criar um único checkbox. Ele deve ser usado para criar campos de aceite ou ativo/inativo.

Você pode informar o atributo `default` que irá prover um input hidden com o valor padrão caso o campo não seja selecionado.

```

```

### Radio

[](#radio)

O componente `` prove um conjuto de radios. Você deve informar o atributo `options` contendo um array no formato *chave =&gt; valor*.

```

```

Para definir o valor que deve vir selecionado, utilize o atributo `selected`.

```

```

### Buttons

[](#buttons)

O componente `` gera os botões para controle do formulário.

Você pode informar o atributo `submit` que será o texto do botão de envio do formulário.

```

```

Se você informar também o atributo `cancel-url`, o componente irá exibir um link cancelar apontando para o valor informado.

```

```

Você pode informar também o atributo `loader`, que exibe um loader ao clicar no botão de enviar. Somente a presença deste atributo já habilita loader. Se você definir um valor para o atributo, o texto do botão será alterado enquanto ele estiver com o loader ativo.

```

```

### Slots

[](#slots)

Os componentes ``, ``, ``, ``, `` e `` permitem que você informe conteúdos adicionais, os chamados [Slots](https://laravel.com/docs/8.x/blade#slots). Por exemplo:

```

    Fique tranquilo, também não gostamos de spam!

```

Atribuição de valores
---------------------

[](#atribuição-de-valores)

Como visto, você pode definir os valores dos campos atráves do atributo `value` (para o componente ``) ou através do atributo `selected` (para os componentes ``, ``, `` e ``).

### Model binding

[](#model-binding)

Ao invés de definir os atributos `value` e `selected`, há também a possibilidade de pegar o valor de um campo automaticamente de um model Eloquent ou de um array associativo. Basta utilizar o atributo `:bind`.

No exemplo abaixo o componente irá procurar na variável `$usuario` (que deve ser uma instância de um model Eloquent ou um array associativo) a propriedade `nome` que foi definida através do atributo `name`. Neste caso o valor do campo seria o valor de `$usuario->nome`.

```

```

Você pode fazer o bind em vários campos de uma só vez informando o atributo `bind` no componente `` ou utilizando as diretivas `@bind` e `@endbind`.

```

```

```

    @bind($usuario)

    @endbind

```

Você pode inclusive intercalar bindings.

```

    @bind($perfilDoUsuario)

    @endbind

```

Você pode também desabilitar o bind definindo o atributo `:bind` ou a diretiva `@bind` como `false`.

```

```

### Old input data

[](#old-input-data)

Quando ocorre um erro de validação e o Laravel redireciona você de volta ao formulário, os campos continuarão com os valores digitados. Isto irá sempre sobrescrever qualquer valor padrão.

Customização
------------

[](#customização)

Você pode publicar o arquivo de configuração e também as views com o seguinte comando:

```
php artisan vendor:publish --provider="Vespera\LaravelFormComponents\ServiceProvider"
```

O arquivo de configuração `form-components.php` estará disponível na pasta `config` e as views serão publicadas na pasta `resources/views/vendor/form-components`.

No arquivo de configuração você pode definir qual framework CSS você irá utilizar e também a localização de cada view utilizada em cada componente.

Créditos
--------

[](#créditos)

- Este pacote é inspirado no ótimo trabalho do [Pascal Baljet](https://github.com/pascalbaljetmedia/laravel-form-components).

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~55 days

Recently: every ~75 days

Total

7

Last Release

1753d ago

Major Versions

1.2.0 → v2.x-dev2021-07-23

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/7110502?v=4)[Ricardo Monteiro](/maintainers/ricazao)[@ricazao](https://github.com/ricazao)

---

Top Contributors

[![ricazao](https://avatars.githubusercontent.com/u/7110502?v=4)](https://github.com/ricazao "ricazao (7 commits)")

### Embed Badge

![Health badge](/badges/vesperabr-laravel-form-components/health.svg)

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

###  Alternatives

[fumeapp/modeltyper

Generate TypeScript interfaces from Laravel Models

196277.9k](/packages/fumeapp-modeltyper)[aedart/athenaeum

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

255.2k](/packages/aedart-athenaeum)

PHPackages © 2026

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