https://github.com/robclancy/validation
Validation
https://github.com/robclancy/validation
Last synced: about 1 year ago
JSON representation
Validation
- Host: GitHub
- URL: https://github.com/robclancy/validation
- Owner: robclancy
- Created: 2013-02-28T15:16:30.000Z (about 13 years ago)
- Default Branch: master
- Last Pushed: 2013-03-29T15:42:34.000Z (about 13 years ago)
- Last Synced: 2025-03-15T07:38:10.496Z (about 1 year ago)
- Language: PHP
- Homepage:
- Size: 184 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
validation
================
This isn't ready for use.
The following is a dump to explain things for feedback.
First we have an alias, `Validatable` will alias `RobClancy\Validation\Illuminate`.
To use this for model validation you would do...
```php
// Note most of this would be in a base class
class Post extends Eloquent {
// We import the validator methods
use Validatable;
// Define the input and rules to validate, basic post validation
public function defineInput()
{
$this->input('user_id')->required()->integer();
$this->input('post')->required();
}
// Then we have our save method
public function save()
{
if ( ! $this->validate($this->attributes))
{
return false;
// User can now call $this->getErrors() for a list of errors
}
// Doing this means we can push Input::all() into the model and the validator will filter out what we need
$this->attributes = $this->getValidatedInput();
return parent::save();
}
}
```
So the above in a controller would be...
```php
class PostController extends Controller {
...
public function postIndex()
{
$post = new Post(Input::all());
if ( ! $post->save())
{
return Redirect::back()->withErrors($post->getErrors(), $post->getInput());
}
return Redirect::to('success/page');
}
}```
Then I had a use case for logging in, didn't want to validate input before sending to authentication on a model so can do this instead...
```php
class LoginController extends Controller {
use Validatable;
// getLogin method etc here
// Define the input to validate against
public function defineInput()
{
$this->input('email')->required()->email();
$this->input('password')->required();
}
// And once again use the new methods here
public function postIndex()
{
if ( ! $this->validate())
{
return Redirect::back()->withErrors($this->getErrors());
}
// run authentication
}
}
```
In the controller example you can also skip the defineInput method and do this instead...
```php
class LoginController extends Controller {
use Validatable;
...
public function postIndex()
{
$validate = $this->validate(function($add)
{
$add->input('email')->required()->email();
$add->input('password')->required();
});
if ( ! $validate)
{
return Redirect::back()->withErrors($this->getErrors());
}
// authenticate
}
}
```