https://github.com/codezero-be/validator
🚫[ABANDONED] Form input validator
https://github.com/codezero-be/validator
Last synced: 4 days ago
JSON representation
🚫[ABANDONED] Form input validator
- Host: GitHub
- URL: https://github.com/codezero-be/validator
- Owner: codezero-be
- License: mit
- Archived: true
- Created: 2014-08-10T18:55:55.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2014-08-22T22:43:07.000Z (over 11 years ago)
- Last Synced: 2025-05-25T15:16:48.707Z (8 months ago)
- Language: PHP
- Homepage:
- Size: 152 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Form Input Validator #
[](https://travis-ci.org/codezero-be/validator)
[](https://packagist.org/packages/codezero/validator)
[](https://packagist.org/packages/codezero/validator)
[](https://packagist.org/packages/codezero/validator)
This package provides an easy to use interface to handle server side form validation and lets you create your custom form validation classes without much effort.
Although the core of this package is not bound to any framework, I have included a ServiceProvider and ValidationService implementation specifically for [Laravel](http://www.laravel.com/).
I have also included a ValidationTrait and a facade (both for Laravel) so you can use this package in a way you like best (see below for more).
## Installation ##
Install this package through Composer:
"require": {
"codezero/validator": "1.*"
}
## Laravel 4 Implementation ##
After installing, update your `app/config/app.php` file to include a reference to this package's service provider in the providers array:
'providers' => [
'CodeZero\Validator\ValidatorServiceProvider'
]
This package will automatically register the `Validate` alias, if this is not already taken.
You can handle failed validations by catching the ValidationException. One automated way is to add the following handler to `app/start/global.php`. But you could as easily catch it in a try/catch block.
App::error(function(CodeZero\Validator\Exceptions\ValidationException $exception)
{
return Redirect::back()->withInput()->withErrors($exception->getErrors());
});
### Laravel Specific Usage ###
#### 1. Create a FormValidator to validate your form ####
use CodeZero\Validator\FormValidator;
class UpdateUserForm extends FormValidator {
/**
* Validation rules
*
* @var array
*/
protected $rules = [
'name' => 'required',
'email' => 'required|email|unique,email,{userId}'
];
}
Note the `{userId}` placeholder as an example.
#### 2. Handle the input ####
Create your form and then handle the input in your controller in one of the following ways.
##### Validate with a facade: #####
$input = Input::all();
$vars = ['{userId}' => $someUser->id];
Validate::form('UpdateUserForm', $input, $vars);
You can pass the input and any placeholder key/value pairs as the second and third parameter, but if you leave both off, the package will automatically fetch `Input::all()` for you.
To have typesafety or autocomplete in IDE's, you might do this instead:
Validate::form(get_class(UpdateUserForm), $input, $vars);
Or if you use PHP 5.5 or above, this is even cleaner:
Validate::form(UpdateUserForm::class, $input, $vars);
##### Validate with a trait: #####
use CodeZero\Validator\Support\ValidatorTrait;
class HomeController extends BaseController {
use ValidatorTrait;
public function update()
{
$input = Input::all();
$vars = ['{userId}' => $someUser->id];
$this->validate(UpdateUserForm::class, $input, $vars);
return Redirect::to('/');
}
}
#### 3. Show any validation errors ####
Showing the errors in your form is as easy as doing this for each field:
{{ $errors->first('name', '
:message
'); }}
That's it!