hadder / laravel-presenter
基于 laracasts/presenter 的展示器
1.0.7
2024-09-26 17:58 UTC
Requires
- php: >=7.0
- illuminate/support: ~7.0|~8.0|~9.0|~10.0|~11.0
README
基于修改的包 laracasts/presenter (Jeffrey https://laracasts.com)
在某些情况下,在显示某些数据或进行一些格式化之前执行一些逻辑是必要的。
- 这种逻辑应该在视图中执行吗?不。
- 应该在模型中执行吗?不!
为此,我们使用 "presenters"。这个包就是为了这个目的。
安装
Composer
composer require hadder/laravel-presenter
使用
第一步是将您的展示器存储在某个地方 - 任何地方。这些将是简单的对象,除了格式化数据之外不做任何事情。
use Hadder\LaravelPresenter\Presenter; class UserPresenter extends Presenter { public function nomeCompleto() { return $this->nome . ' ' . $this->sobrenome; } public function data_nascimento() { return $this->data_nascimento->format('d/m/Y'); } }
或者使用命令 php artisan presenter:make UserPresenter
然后在您的模型中,使用 trait Hadder\LaravelPresenter\PresentableTrait
。
示例
<?php use Hadder\LaravelPresenter\PresentableTrait; class User extends \Eloquent { use PresentableTrait; protected $presenter = \App\Presenters\UserPresenter::class; protected $date = ['data_nascimento']; }
Feitooooooooooo!现在您可以做了
<h1>Olá, {{ $user->present()->nomeCompleto }}</h1>
注意
默认情况下,一些日期格式化展示器已经预定义,如 created_at
和 updated_at
,格式为 d/m/Y H:i:s
,也就是说,检索到的每个模型都已经有了 $model->present()->created_at
。