Problem

You want to create a form input field.

Instead of writing HTML directory you want to use Laravel’s Form facade.

Solution

Use the Form::input() method.

The method takes 4 arguments.

$type – (required) The first argument specifies the type of input. Values such as “text”, “password”, “file”, etc. are accepted.

$name – (required) The second argument is name.

$value – (optional) The third argument is the value for the input field.

$options – (optional) The fourth argument is an array of additional field attributes. The array can be populated with items having keys such as “id”, “size”, or “class”.


Usually, this is used in a Blade template.

{{ Form::input(‘text’, ‘name’) }}

{{ Form::input(’email’, ’email_address’, null, [‘class’ => ’emailfld’]) }}

Discussion

Use the specific method for the type of field you want.

Instead of calling Form::input() directly, use one of the following:

Form::password() – Creating a Password Input Field.

Form::text() – Creating a Text Input Field.

Form::hidden() – Creating a Hidden Input Field.

Form::email() – Creating an Email Input Field.

Form::url() – Creating a URL Input Field.

Form::file() – Creating a File Input Field.

Model binding

See the Creating a New Model Based Form recipe for details on how the input value is overridden if you bind a model to the form.