A simple package that provides a venue for model validation in Laravel.

1.0 2020-01-21 00:24 UTC

This package is auto-updated.

Last update: 2020-06-21 10:49:49 UTC


Build Status Coverage Status Code Climate

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.

  • PHP 7.2
  • PHP 7.3
  • PHP 7.4


Option 1

Extend the validation model instead of Eloquent\Model.


use Jaspaul\EloquentModelValidation\Model;

class Foo extends Model

Option 2

Override Eloquent in config/app.php

'Eloquent' => Jaspaul\EloquentModelValidation\Model::class,

Now you can just do the following:


class Foo extends Eloquent

Option 3

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.


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();



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 {
        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;