Introduction

This package comes up with an easy, smart way to pass laravel validation rules to html form and use it as client side validation.


Installation

This Package can be installed via Composer

composer require kalshah/laravel-validation-html-attributes

How it works

The core work is done in a trait WithHtmlAttributes which can be used in two ways:

1- First by using the package request LaravelValidationToHtmlAttributesRequest which uses this trait, this suits you if you are validating request in controller methods

    public function create(LaravelValidationToHtmlAttributesRequest $request)
    {
        $request->setRules([
            'first_name' => 'required'
        ]);
        
        return view('form', ['attributes' => $request->htmlAttributes()]);
    }

2- Second by using the WithHtmlAttributes in your FormRequest

    use WithHtmlAttributes;

and in your controller you can pass the attributes like so:

    public function create()
    {
        return view('form', ['attributes' => (new WithHtmlAttributesFormRequest())->htmlAttributes()]);
    }

and in the blade files you can access these attributes and add them on html form inputs, like so:

<input name="first_name" {{ $attributes->first_name }}>

and lets assume the laravel validation rules of this field first_name were

return ['first_name' => 'required|min:2|string'];

the returned html validation inputs will be

<input name="first_name" required="required" minlength="2" type="string">

as we can see the trait converted laravel validation rules to valid html validation attributes.