Package Data | |
---|---|
Maintainer Username: | haska |
Maintainer Contact: | david.haska@seznam.cz (David Haska) |
Package Create Date: | 2014-05-25 |
Package Last Update: | 2014-05-25 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-19 03:24:32 |
Package Statistics | |
---|---|
Total Downloads: | 7 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 0 |
Total Watchers: | 2 |
Total Forks: | 0 |
Total Open Issues: | 0 |
And then, if using Laravel (not required), add the service provider to app/config/app.php
in the providers
array.
'Haska\Validation\ValidationServiceProvider'
Here's an example. Imagine that you need validation for a login form. First, create an object to contain the necessary rules:
<?php namespace MyApp\Forms;
use Haska\Validation\FormValidator;
class Login extends FormValidator {
/**
* Validation rules for logging in
*
* @var array
*/
protected $rules = [
'username' => 'required',
'password' => 'required'
];
}
Next, pull this object into your controller (or wherever you perform your validation).
use MyApp\Forms\Login as LoginForm;
use Haska\Validation\FormValidationException;
// ...
protected $loginForm;
public function __construct(LoginForm $loginForm)
{
$this->loginForm = $loginForm;
}
public function store()
{
$input = Input::all();
try
{
$this->loginForm->validate($input);
// login user, do whatever, redirect
}
catch (FormValidationException $e)
{
return Redirect::back()->withInput()->withErrors($e->getErrors());
}
}
If validation passes, true
will be returned. Otherwise, a FormValidationException
exception will be thrown. You can either catch that within your controller, or pass it to, for example, global.php
for handling. Either works.
The key is that you'll create a dedicated class for each form that you need to validate. For instance, if a user can register for your site, then you'll have a Registration
form object. Maybe something like:
<?php namespace MyApp\Forms;
use Haska\Validation\FormValidator;
class Registration extends FormValidator {
/**
* Validation rules for registering
*
* @var array
*/
protected $rules = [
'username' => 'required',
'email' => 'required|unique:users',
'age' => 'required|integer',
'gender' => 'in:male,female',
'password' => 'required|confirmed'
];
}
Now, just inject this object into your controller or application service, and call a validate()
method on it.
$this->registrationForm->validate(Input::all());