Package Data | |
---|---|
Maintainer Username: | Jaspaul |
Maintainer Contact: | jaspaul.b@gmail.com (Jaspaul Bola) |
Package Create Date: | 2017-03-10 |
Package Last Update: | 2024-05-27 |
Home Page: | |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-23 03:17:11 |
Package Statistics | |
---|---|
Total Downloads: | 20,369 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 9 |
Total Watchers: | 2 |
Total Forks: | 2 |
Total Open Issues: | 0 |
This package is an experiment in introducing the concept of active record validations to Laravel.
Via Composer
$ composer require jaspaul/eloquent-model-validation
The following versions of PHP are supported by this version.
Extend the validation model instead of Eloquent\Model.
<?php
use Jaspaul\EloquentModelValidation\Model;
class Foo extends Model
{
...
}
Override Eloquent
in config/app.php
'Eloquent' => Jaspaul\EloquentModelValidation\Model::class,
Now you can just do the following:
<?php
class Foo extends Eloquent
{
...
}
Update your classes to implement Validatable using the Validates trait provided. You can use this option if extending the provided model isn't an option in your project.
<?php
namespace Jaspaul\EloquentModelValidation;
use Illuminate\Database\Eloquent\Model as Base;
use Jaspaul\EloquentModelValidation\Traits\Validates;
use Jaspaul\EloquentModelValidation\Contracts\Validatable;
abstract class Model extends Base implements Validatable
{
use Validates;
/**
* Returns the data to validate.
*
* @return array
*/
protected function getData() : array
{
return $this->getAttributes();
}
}
<?php
use Jaspaul\EloquentModelValidation\Model;
class User extends Model
{
protected function getRules() : array
{
return [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6|confirmed',
];
}
}
Now if you were storing your model:
public function store()
{
$user = new User(Input::all());
try {
$user->save();
return $user;
} catch (\Illuminate\Validation\ValidationException $exception) {
// You can handle exception, access the errors $exception->getErrors(),
// or let it bubble up and let the Laravel Exception handler deal with it.
throw $exception;
}
}