joemugen/eloquenty-model

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

1.1.0 2022-08-17 14:28 UTC

This package is not auto-updated.

Last update: 2024-04-10 22:56:02 UTC


README

This model provides a 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 joemugen/eloquenty-model

Example

use JoeMugen\EloquentyModel\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(['name' => 'John']);
$item->password = 'secret';

echo $item; // {"name":"John"}