datacreativa/
laravel-presentable
g4t.io

View Presenter Classes for Eloquent Models

72 stars by Paul Redmond

Create presenters for Eloquent Models

README from datacreativa/laravel-presentable Open on GitHub →

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.

More from the ecosystem

marcreichel/
laya-php
g4t.io
3 53

LayaPHP: Self-Hosted Text Classification for PHP and Laravel

Classify text in PHP without an LLM bill: typed decisions in 100+ languages, self-hosted. Laravel-ready SDK for Laya, a Jev AI alternative.

ai classification decision-engine
marcreichel/laya-php via Laravel News
Josh-Dovey/
postcodes-laravel
g4t.io
5 9

Postcodes for Laravel: GB Postcode Lookup and Geography Data

Postcodes for Laravel adds typed GB postcode lookups, validation, geography data, distance searches, and test fakes through the GB Postcodes API.

Josh-Dovey/postcodes-laravel via Laravel News
RedberryProducts/
mailbox-for-laravel
g4t.io
4 115

Mailbox for Laravel: Preview and Test Rendered Email

Mailbox for Laravel captures outgoing mail in a local dashboard and lets you test rendered HTML, recipients, and attachments with fluent assertions.

RedberryProducts/mailbox-for-laravel via Laravel News