jenssegers / model
An Laravel eloquent-like model class, for Laravel and other frameworks
Installs: 3 254 951
Dependents: 33
Suggesters: 0
Security: 0
Stars: 383
Watchers: 9
Forks: 54
Open Issues: 19
Requires
- illuminate/contracts: ^5.0|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/support: ^4.0|^5.0|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
Requires (Dev)
README
This model provides an Laravel eloquent-like base class that can be used to build custom models in Laravel or other frameworks.
Features
- Accessors and mutators
- Model to Array and JSON conversion
- Hidden attributes in Array/JSON conversion
- Guarded and fillable attributes
- Appending accessors and mutators to Array/JSON conversion
- Attribute casting
You can read more about these features and the original Eloquent model on http://laravel.com/docs/eloquent
Installation
Install using composer:
composer require jenssegers/model
Example
use Jenssegers\Model\Model; class User extends Model { protected $hidden = ['password']; protected $guarded = ['password']; protected $casts = ['age' => 'integer']; public function save() { return API::post('/items', $this->attributes); } public function setBirthdayAttribute($value) { $this->attributes['birthday'] = strtotime($value); } public function getBirthdayAttribute($value) { return new DateTime("@$value"); } public function getAgeAttribute($value) { return $this->birthday->diff(new DateTime('now'))->y; } } $item = new User(array('name' => 'john')); $item->password = 'bar'; echo $item; // {"name":"john"}