This Laravel package auto-validates a model on save.
Switch branches/tags
Nothing to show
Clone or download
JeffreyWay Merge pull request #25 from thaiphan/master
Fix broken Composer version constraints
Latest commit 550a6aa Sep 22, 2014
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src/Way/Database Add custom messages with static::$messages May 9, 2013
tests Fix some testability issues Apr 12, 2013
.gitignore First commit Apr 12, 2013
.travis.yml First commit Apr 12, 2013
composer.json Fix broken Composer version constraints Sep 21, 2014
phpunit.xml First commit Apr 12, 2013
readme.md Add custom messages with static::$messages May 9, 2013

readme.md

Auto-Validate On Save

This package takes care of the model validation process for you. Rather than manually going through the tedious Validator::make(...) process, just save the model, and this package will handle the rest.

Usage

Install the package through Composer.

{
    "require": {
        "laravel/framework": "4.0.*",
        "way/database": "dev-master"
    }
}

Then, rather than extending Eloquent from your model, extend Way\Database\Model, like so:

<?php

class Dog extends Way\Database\Model {

}

Alternatively, edit app/config/app.php, and add a new item to the aliases array:

'Model' => 'Way\Database\Model'

Now, your models can simply extend Model.

<?php

class Dog extends Model {

}

Validation

This package hooks into Eloquent's save event, and automatically validates the model's current attributes against the rules that you have set for your model.

Here's an example of setting validation rules for the model:

<?php

class Dog extends Model {
    protected static $rules = [
        'name' => 'required'
    ];

    //Use this for custom messages
    protected static $messages = [
        'name.required' => 'My custom message for :attribute required'
    ];
}

Now, simply save the model as you normally would, and let the package worry about the validation. If it fails, then the model's save method will return false.

Here's an example of storing a new dog.

public function store()
{
    $dog = new Dog(Input::all());

    if ($dog->save())
    {
        return Redirect::route('dogs.index');
    }

    return Redirect::back()->withInput()->withErrors($dog->getErrors());
}

If using Eloquent's static create method, you can use the hasErrors() methods to determine if validation errors exist.

$dog = Dog::create(Input::all());

if ($dog->hasErrors()) ...

That's it! Have fun.