LaravelPackages.net
Acme Inc.
Toggle sidebar
datacreativa/laravel-presentable

Create presenters for Eloquent Models

26.208
72
v1.4.0
About datacreativa/laravel-presentable

datacreativa/laravel-presentable is a Laravel package for create presenters for eloquent models. It currently has 72 GitHub stars and 26.208 downloads on Packagist (latest version v1.4.0). Install it with composer require datacreativa/laravel-presentable. Discover more Laravel packages by datacreativa or browse all Laravel packages to compare alternatives.

Last updated

Laravel Presentable

Total Downloads GitHub Actions

Banner

This package allows the information to be presented in a different way by means of methods that can be defined in the model's presenter class.

Installation

You can install the package via composer:

| Laravel | Version | |---------|---------| | 6, 7, 8 | 1.0.0 | | 9 | 1.1.0 | | 10 | 1.2.0 | | 11 | 1.3.0 | | 12 | 1.4.0 | | 13 | 1.5.0 |

composer require datacreativa/laravel-presentable

Usage

Use the HasPresentable trait in any Eloquent Model, you must also add the $presenter property.


use App\Models\Presenters\UserPresenter;
use TheHiveTeam\Presentable\HasPresentable;

class User extends Model
{
    use HasPresentable;

    protected $presenter = UserPresenter::class;
}

You can generate a class presenter with this command:

php artisan make:presenter UserPresenter

In this class you can define any method, for example:

namespace App\Models\Presenters;

use TheHiveTeam\Presentable\Presenter;

class UserPresenter extends Presenter
{
    public function name()
    {
        return ucwords($this->model->name);
    }
}

Now you have available the present() method in Eloquent Model.

$user = (new User)->setAttribute('name', 'john doe');
$user->present()->name;
// John Doe

Enjoy it!

Testing

composer test

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please see License File for more information.

Comments