PHPackages                             agenciamaior/bootstrap\_forms - 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. [Templating &amp; Views](/categories/templating)
4. /
5. agenciamaior/bootstrap\_forms

ActiveLibrary[Templating &amp; Views](/categories/templating)

agenciamaior/bootstrap\_forms
=============================

Biblioteca para gerar formulários estilizados com bootstrap e Laravel Forms

v0.0.10(7y ago)32782HTML

Since Dec 27Pushed 7y agoCompare

[ Source](https://github.com/agenciamaior/bootstrap_forms)[ Packagist](https://packagist.org/packages/agenciamaior/bootstrap_forms)[ RSS](/packages/agenciamaior-bootstrap-forms/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependencies (2)Versions (11)Used By (2)

BootstrapForms
==============

[](#bootstrapforms)

Biblioteca que gera tags HTML de formulários e campos com estilos do Bootstrap 4.

1. [Dependências](#dependencias)
2. [Instalação](#instalacao)
3. [Utilização](#utilizacao)
    1. [bsText](#text)
    2. [bsSelect](#select)
    3. [bsFile](#file)
    4. [bsCheckbox](#checkbox)
    5. [bsRadio](#radio)
    6. [bsTextarea](#textarea)
    7. [bsSubmit](#submit)
    8. [Formulário](#form)
    9. [restForm](#rest_form)
    10. [deleteLink](#delete)

 Dependências
-----------------------------------------------------

[](#-dependências)

- [Bootstrap 4](https://getbootstrap.com)
- [FontAwesome 4](https://fontawesome.com/v4.7.0/)
- [Laravel 5.5 ou superior](https://laravel.com/)
- [Laravel Forms 5.5 ou superior](https://laravelcollective.com/docs/master/html)

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

[](#-instalação)

```
$ composer require agenciamaior/bootstrap_forms
```

Esse pacote instala automaticamente a biblioteca **Laravel Forms**. Nenhuma configuração adicional é necessária.

 Utilização
-------------------------------------------------

[](#-utilização)

###  bsText

[](#-bstext)

```
{{ Form::bsText($name, $label, $attributes = []) }}
```

CamposObrigatórioDescriçãonameSimAtributo *name* do input. Caso **$attributes\['id'\]** não seja especificado, esse valor também será usado para o *id*labelSimLabel do campoattributesNãoArray com atributos que podem ser alterados/adicionados ao input, como *class*, *id*, *data*, etc.#### Exemplo

[](#exemplo)

```
{{ Form::bsText('nome', 'Nome') }}
```

```

    Nome

```

#### Exemplo com atributos

[](#exemplo-com-atributos)

```
{{ Form::bsText('nome', 'Nome', ['class' => 'active', 'default' => 'João', 'placeholder' => 'Seu nome aqui', 'id' => 'nome-input']) }}
```

```

    Nome

```

**Observações:**

- O atributo **default** preenche o campo com um valor padrão.
- O atributo **class** adiciona classes novas ao campo, porém, a classe *form-control* sempre vai estar presente.

#### Campo sem label

[](#campo-sem-label)

```
{{ Form::bsText('nome', null) }}
```

```

```

#### Label com HTML

[](#label-com-html)

```
{{ Form::bsText('nome', 'Nome do Campo') }}
```

```

    Nome do Campo

```

#### Variações

[](#variações)

```
{{ Form::bsEmail('email', 'E-mail') }}
```

```

    E-mail

```

```
{{ Form::bsUrl('url', 'Link') }}
```

```

    Link

```

```
{{ Form::bsPassword('pass', 'Senha') }}
```

```

    Senha

```

###  bsSelect

[](#-bsselect)

```
{{ Form::bsSelect($name, $label, $values, $attributes = []) }}
```

CamposObrigatórioDescriçãonameSimAtributo *name* do input. Caso **$attributes\['id'\]** não seja especificado, esse valor também será usado para o *id*labelSimLabel do campovaluesSimArray no estilo *key =&gt; value* que vai compor as opções do *select*attributesNãoArray com atributos que podem ser alterados/adicionados ao input, como *class*, *id*, *data*, etc.#### Exemplo

[](#exemplo-1)

```
{{ Form::bsSelect('items', 'Itens', [0 => 'Item 1', 1 => 'Item 2']) }}
```

```

    Itens

        Item 1
        Item 2

```

#### Exemplo com atributos

[](#exemplo-com-atributos-1)

```
{{ Form::bsSelect('items', 'Itens', [0 => 'Item 1', 1 => 'Item 2'], ['placeholder' => 'Selecione uma opção', 'default' => 1]) }}
```

```

    Itens

        Selecione uma opção
        Item 1
        Item 2

```

#### Sem placeholder

[](#sem-placeholder)

```
{{ Form::bsSelect('items', 'Itens', [0 => 'Item 1', 1 => 'Item 2'], ['placeholder' => null]) }}
```

```

    Itens

        Item 1
        Item 2

```

###  bsFile

[](#-bsfile)

```
{{ Form::bsFile($name, $label, $attributes = []) }}
```

CamposObrigatórioDescriçãonameSimAtributo *name* do input. Caso **$attributes\['id'\]** não seja especificado, esse valor também será usado para o *id*labelSimLabel do campoattributesNãoArray com atributos que podem ser alterados/adicionados ao input, como *class*, *id*, *data*, etc.#### Exemplo

[](#exemplo-2)

```
{{ Form::bsFile('image', 'Foto') }}
```

```

    Foto

```

#### Exemplo com atributos

[](#exemplo-com-atributos-2)

```
{{ Form::bsFile('image', 'Foto', ['class' => 'my-2']) }}
```

```

    Foto

```

#### Imagem padrão

[](#imagem-padrão)

```
{{ Form::bsFile('image', 'Foto', ['default' => '/images/my-image.png']) }}
```

```

    Foto

```

###  bsCheckbox

[](#-bscheckbox)

```
{{ Form::bsCheckbox($name, $label, $value, $attributes = []) }}
```

CamposObrigatórioDescriçãonameSimAtributo *name* do input. Caso **$attributes\['id'\]** não seja especificado, esse valor também será usado para o *id*labelSimLabel do campovalueSimValue associado ao checkboxattributesNãoArray com atributos que podem ser alterados/adicionados ao input, como *class*, *id*, *data*, etc.#### Exemplo

[](#exemplo-3)

```
{{ Form::bsCheckbox('agreed', 'Li e concordo com os termos', true) }}
```

```

        Li e concordo com os termos

```

#### Exemplo com atributos

[](#exemplo-com-atributos-3)

```
{{ Form::bsCheckbox('agreed', 'Li e concordo com os termos', true, ['checked' => true, 'id' => 'option-agreed']) }}
```

```

        Li e concordo com os termos

```

#### Múltiplos

[](#múltiplos)

```
{{ Form::bsCheckbox('option_1', 'Opção 1') }}
{{ Form::bsCheckbox('option_2', 'Opção 2') }}
{{ Form::bsCheckbox('option_3', 'Opção 3') }}
```

```

        Opção 1

        Opção 2

        Opção 3

```

###  bsRadio

[](#-bsradio)

```
{{ Form::bsRadio($name, $label, $value, $attributes = []) }}
```

CamposObrigatórioDescriçãonameSimAtributo *name* do input. Caso **$attributes\['id'\]** não seja especificado, o valor para o atributo *id* será composto de *name-value*labelSimLabel do campovalueSimValue associado ao radioattributesNãoArray com atributos que podem ser alterados/adicionados ao input, como *class*, *id*, *data*, etc.#### Exemplo

[](#exemplo-4)

```
{{ Form::bsRadio('options', 'Opção 1', 1) }}
{{ Form::bsRadio('options', 'Opção 2', 2) }}
{{ Form::bsRadio('options', 'Opção 3', 3) }}
```

```

        Opção 1

        Opção 2

        Opção 3

```

**Observação**: Para que o campo funcione corretamente com mais de um, o *name* de todos os *radios* deve ser igual.

###  bsTextarea

[](#-bstextarea)

```
{{ Form::bsTextarea($name, $label, $attributes = []) }}
```

CamposObrigatórioDescriçãonameSimAtributo *name* do input. Caso **$attributes\['id'\]** não seja especificado, esse valor também será usado para o *id*labelSimLabel do campoattributesNãoArray com atributos que podem ser alterados/adicionados ao input, como *class*, *id*, *data*, etc.#### Exemplo

[](#exemplo-5)

```
{{ Form::bsTextarea('msg', 'Mensagem') }}
```

```

    Mensagem

```

#### Exemplo com atributos

[](#exemplo-com-atributos-4)

```
{{ Form::bsTextarea('msg', 'Mensagem', ['cols' => 20, 'default' => 'Uma mensagem']) }}
```

```

    Mensagem

    Uma mensagem

```

###  bsSubmit

[](#-bssubmit)

```
{{ Form::bsSubmit($text, $attributes = []) }}
```

CamposObrigatórioDescriçãotextSimTexto do botãoattributesNãoAtributos que podem ser alterados dentro do botão#### Exemplo

[](#exemplo-6)

```
{{ Form::bsSubmit('Salvar') }}
```

```

    Salvar

```

#### Exemplo com atributos

[](#exemplo-com-atributos-5)

```
{{ Form::bsSubmit('Salvar', ['class' => 'btn btn-default', 'id' => 'button-save', 'type' => 'button']) }}
```

```

    Salvar

```

#### Trocar o ícone

[](#trocar-o-ícone)

```
{{ Form::bsSubmit('Imprimir', ['icon' => 'print']) }}
```

```

    Salvar

```

#### Sem ícone

[](#sem-ícone)

```
{{ Form::bsSubmit('Salvar', ['icon' => null]) }}
```

```

    Salvar

```

###  Formulário

[](#-formulário)

#### Formulário comum

[](#formulário-comum)

```
{{ Form::open($attributes = []) }}

// ...

{{ Form::close() }}
```

##### Exemplo

[](#exemplo-7)

```
{{ Form::open(['url' => '/save', 'id' => 'form-insert']) }}

{{ Form::close() }}
```

```

```

##### Mudar o método

[](#mudar-o-método)

```
{{ Form::open(['url' => '/save', 'method' => 'get']) }}

{{ Form::close() }}
```

```

```

##### Formulário para usar com o bsFile

[](#formulário-para-usar-com-o-bsfile)

```
{{ Form::open(['url' => '/upload', 'files' => true]) }}

{{ Form::bsFile('image', 'Foto') }}

{{ Form::close() }}
```

```

        Foto

```

###  restForm

[](#-restform)

```
{{ Form::restForm($model, $attributes = []) }}

// ...

{{ Form::close() }}
```

#### Exemplo com Insert

[](#exemplo-com-insert)

Suponha um model **Pedido** com o seguinte Controller *PedidosController.php*:

```
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Pedido;

class PedidosController extends Controller
{
    //...

    public function create() {
        $pedido = new Pedido;

        return view('pedidos.index', [
            'pedido' => $pedido,
        ]);
    }

    //...
}
```

E sua respectiva view *pedidos/create.blade.php*:

```
//...

{{ Form::restForm($pedido) }}

//...

{{ Form::close() }}

//...
```

Ao identificar a variável **$pedido** como um novo Model, a função *restForm* vai tentar procurar dentro do arquivo *routes/web.php* por uma rota com o *name* **pedidos.store**, por isso, devemos criar essa rota dentro desse arquivo, por exemplo:

```
//...

Route::post('/pedidos', 'PedidosController@store')->name('pedidos.store');

//...
```

*HTML gerado pela função*

```

```

A função *restForm* vai tentar utilizar o nome da variável para buscar as rotas. No nosso exemplo, a variável é **$pedido** (no singular) e o prefixo da rota seria **pedidos** (no plural). Você pode alterar esse prefixo através do atributo **route\_prefix**. Exemplo:

```
//...

{{ Form::restForm($pedido, ['route_prefix' => 'requests']) }}

//...

{{ Form::close() }}

//...
```

*routes/web.php*

```
//...

Route::post('/pedidos', 'PedidosController@store')->name('requests.store');

//...
```

#### Exemplo com Update

[](#exemplo-com-update)

Suponha um model **Pedido** com o seguinte Controller *PedidosController.php*:

```
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Pedido;

class PedidosController extends Controller
{
    //...

    public function edit() {
        $pedido = Pedido::find(10); //ID fictício

        return view('pedidos.edit', [
            'pedido' => $pedido,
        ]);
    }

    //...
}
```

E sua respectiva view *pedidos/edit.blade.php*:

```
//...

{{ Form::restForm($pedido) }}

//...

{{ Form::close() }}

//...
```

Ao identificar a variável **$pedido** como registro existente, a função *restForm* vai tentar procurar dentro do arquivo *routes/web.php* por uma rota com um *name* **pedidos.update** e com um parâmetro *pedido*, por isso, devemos criar essa rota dentro desse arquivo, por exemplo:

```
//...

Route::put('/pedidos/{pedido}', 'PedidosController@update')->name('pedidos.update');

//...
```

Diferente do *Insert*, que utilizar o método **POST**, a função vai usar o método **PUT** nas rotas para realizar o update.

*HTML gerado pela função*

```

```

A função vai gerar um campo do tipo *hidden* com valor do ID do registro selecionado.

A função *restForm* vai tentar utilizar o nome da variável para buscar as rotas. No nosso exemplo, a variável é **$pedido** (no singular) e o prefixo da rota seria **pedidos** (no plural). Você pode alterar esse prefixo através do atributo **route\_prefix**. Exemplo:

```
//...

{{ Form::restForm($pedido, ['route_prefix' => 'requests']) }}

//...

{{ Form::close() }}

//...
```

*routes/web.php*

```
//...

Route::put('/pedidos/{pedido}', 'PedidosController@update')->name('requests.update');

//...
```

Assim como o prefixo das rotas vai tentar utilizar o nome no plural da variável. O parâmetro da rota vai tentar utilizar o nome no singular da variável. Você pode alterar o nome desse parâmetro através do atributo **route\_param\_name**. Exemplo:

```
//...

{{ Form::restForm($pedido, ['route_param_name' => 'ped']) }}

//...

{{ Form::close() }}

//...
```

*routes/web.php*

```
//...

Route::put('/pedidos/{ped}', 'PedidosController@update')->name('pedidos.update');

//...
```

```

```

###  deleteLink

[](#-deletelink)

```
{{ Html::deleteLink($text, $route, $attributes = []) }}
```

CamposObrigatórioDescriçãotextSimTexto do linkrouteSimCaminho para onde o link levaattributesNãoAtributos que podem ser alterados dentro do linkO padrão REST do Laravel recomenda que qualquer função destrutiva, como excluir um registro, seja chamada através de um método *DELETE* ao invés do GET padrão que os links utilizam. Essa função simula um link com uma requisição *DELETE* através de um formulário:

#### Exemplo

[](#exemplo-8)

```
{{ Form::deleteLink('Excluir', '/pedido/delete') }}
```

```

        Excluir

```

#### Exemplo com atributos

[](#exemplo-com-atributos-6)

```
{{ Form::deleteLink('Excluir', '/pedido/delete', ['form_class' => 'form-1', 'button_class' => 'btn btn-danger', 'button_id' => 'btn-delete']) }}
```

```

        Excluir

```

#### Exemplo com ícone

[](#exemplo-com-ícone)

```
{{ Form::deleteLink('Excluir', '/pedido/delete', ['icon' => 'trash']) }}
```

```

        Excluir

```

###  Health Score

28

—

LowBetter than 52% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity57

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 ~12 days

Recently: every ~4 days

Total

10

Last Release

2629d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2b8f40f500050431e01d3fc7e6114f414c5cfc58f52e16a032cdb15668807ba9?d=identicon)[agenciamaior](/maintainers/agenciamaior)

---

Top Contributors

[![agenciamaior](https://avatars.githubusercontent.com/u/49070853?v=4)](https://github.com/agenciamaior "agenciamaior (3 commits)")

### Embed Badge

![Health badge](/badges/agenciamaior-bootstrap-forms/health.svg)

```
[![Health](https://phpackages.com/badges/agenciamaior-bootstrap-forms/health.svg)](https://phpackages.com/packages/agenciamaior-bootstrap-forms)
```

###  Alternatives

[statamic-rad-pack/runway

Eloquently manage your database models in Statamic.

135212.4k7](/packages/statamic-rad-pack-runway)[ycs77/inertia-laravel-ssr-head

Simple SSR Head for Inertia Laravel

3413.0k](/packages/ycs77-inertia-laravel-ssr-head)

PHPackages © 2026

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