gefar / laravel-form-ajax-validation
Make ajax validation with Laravel Requests for forms with bootstrap
Requires
- php: >=5.4.0
- illuminate/support: >=5.4.0
This package is auto-updated.
Last update: 2024-11-26 22:15:23 UTC
README
Make ajax validation with Laravel Requests for forms with bootstrap
See the full documentation.
##Installation
1. Composer
Add to the composer of your project
composer require lrgt/laravel-form-ajax-validation
Or edit your composer.json
"require": { "Gefar/laravel-form-ajax-validation": "dev-master" },
2. Add the ServiceProvider
Open the file config/app.php
"providers": { ... 'Gefar\LaravelFormAjaxValidation\LaravelFormAjaxValidationServiceProvider', ... },
3. Publish vendor resources
You need to publish the necessary views for create the scripts of jQuery
$ php artisan vendor:publish
4. Laravel Request
Create a request
$ php artisan make:Request TestRequest
Add the rules
public function rules() { return [ 'name'=>'required|max:5', 'description'=>'required', 'tags'=>'required|min:3', ]; }
You also can add to the request custom error messages and change de attributes name
public function messages() { return [ 'name.required'=>'Do not forget your name', 'description.required'=>'You need the description', 'name.max'=>'Your name have less than 5 letters?', ]; } public function attributes(){ return [ 'name'=>'Your name', 'tags'=>'The tags', ]; }
5. Add to the view
Create your form
<form method="post" action="<?=url('save_form')?>" id="myform"> <input type="hidden" name="_token" value="<?=csrf_token()?>"> <div class="form-group"> <label for="nombre">Name</label> <input type="text" name="name" id="name" class="form-control"> </div> <div class="form-group"> <label for="descripcion">Description</label> <textarea type="text" name="description" id="description" rows="5" class="form-control"> </textarea> </div> <div class="form-group"> <label for="tags">Tags</label> <input type="text" name="tags" id="tags" class="form-control"> </div> <input type="submit" value="Save" class="btn btn-success"> </form>
Add the jQuery and include the view that have the ajax script
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> @include('vendor.lrgt.ajax_script', ['form' => '#myform', 'request'=>'App/Http/Requests/TestRequest','on_start'=>true])
You need jQuery 1.11.2 or higher
Where #myform is the id of your form and request is the namespace of your Request. Onstart is just if you want that the validation work from the load of the page. Note: Put the namespace of the request separate with
/