An Laravel eloquent-like model class, for Laravel and other frameworks

Maintainers

👁 jenssegers

Package info

github.com/jenssegers/model

pkg:composer/jenssegers/model

Statistics

Installs: 4 500 384

Dependents: 29

Suggesters: 0

Stars: 396

Open Issues: 21

v1.5.4 2025-03-16 15:13 UTC

Requires

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT eb8fb6e770e4c7e7b9c5c7ba6a7787f8669bce86

modellaraveleloquent


README

👁 Build Status
👁 Coverage Status

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"}