Radiant
Self validating models for Laravel's Eloquent Orm, (*1)
Note: This package is heavily influenced by the Aware bundle for Laravel 3.
https://github.com/crabideau5691/Radiant, (*2)
Installation
Composer
Add "jonob/radiant": "dev-master" to the require section of your composer.json:, (*3)
"require": {
"jonob/radiant": "dev-master"
},
Now run composer update., (*4)
Laravel
Add the following code to the aliases section of the app/config/app.php file, (*5)
'Radiant' => 'Jonob\Radiant\Radiant',
so that it looks something like the following:, (*6)
'aliases' => array(
...
'Radiant' => 'Jonob\Radiant\Radiant',
...
),
Guide
, (*7)
Basic
Radiant extends the Eloquent model., (*8)
To create a new Radiant model, instead of extending the Eloquent class, simply extend the Radiant class:, (*9)
class User extends Radiant {}, (*10)
, (*11)
Validation
Radiant models use Laravel's built-in Validation. Defining validation rules for a model is simple:, (*12)
class User extends Radiant {
/**
* Radiant validation rules
*/
protected $rules = array(
'name' => 'required',
'email' => 'required|email'
);
}
Radiant models validate themselves automatically when Radiant->save() is called., (*13)
$user = new User();
$user->name = 'John';
$user->email = 'john@doe.com';
$user->save(); // returns false if model is invalid
note: You also can validate a model at any time using the Radiant->valid() method., (*14)
, (*15)
Retrieving Errors
When a Radiant model fails validation, an Illuminate\Messages object is attached to the Radiant object., (*16)
Retrieve all errors with $user->getErrors()., (*17)
, (*18)
Validation Messages
You can also set custom error messages in the model if you wish., (*19)
protected $messages = array(
'user.required' => 'Please complete the User field.',
);
, (*20)
Callbacks
Note the callbacks have been completely removed from Radiant. This is because Laravel's Events are far
more flexible and powerful. I highly recommend that you hook into the saving, saved, creating, created,
updating, updated, deleting and deleted events as needed., (*21)
In fact, Radiant now uses the saving event to run the validator prior to the model being saved., (*22)