Package Data | |
---|---|
Maintainer Username: | JonoB |
Package Create Date: | 2013-01-13 |
Package Last Update: | 2013-07-14 |
Language: | PHP |
License: | Unknown |
Last Refreshed: | 2024-11-19 03:15:48 |
Package Statistics | |
---|---|
Total Downloads: | 769 |
Monthly Downloads: | 2 |
Daily Downloads: | 0 |
Total Stars: | 7 |
Total Watchers: | 2 |
Total Forks: | 2 |
Total Open Issues: | 0 |
Self validating models for Laravel's Eloquent Orm
Note: This package is heavily influenced by the Aware bundle for Laravel 3. https://github.com/crabideau5691/Radiant
Add "jonob/radiant": "dev-master"
to the require
section of your composer.json
:
"require": {
"jonob/radiant": "dev-master"
},
Now run composer update
.
Add the following code to the aliases
section of the app/config/app.php
file
'Radiant' => 'Jonob\Radiant\Radiant',
so that it looks something like the following:
'aliases' => array(
...
'Radiant' => 'Jonob\Radiant\Radiant',
...
),
Radiant extends the Eloquent model.
To create a new Radiant model, instead of extending the Eloquent class, simply extend the Radiant class:
class User extends Radiant {}
Radiant models use Laravel's built-in Validation. Defining validation rules for a model is simple:
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.
$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.
When a Radiant model fails validation, an Illuminate\Messages object is attached to the Radiant object.
Retrieve all errors with $user->getErrors()
.
You can also set custom error messages in the model if you wish.
protected $messages = array(
'user.required' => 'Please complete the User field.',
);
```
<a name="save"></a>
## 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.
In fact, Radiant now uses the saving event to run the validator prior to the model being saved.