hadder/laravel-presenter

基于 laracasts/presenter 的展示器

1.0.7 2024-09-26 17:58 UTC

This package is auto-updated.

Last update: 2024-09-26 18:00:25 UTC


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_atupdated_at,格式为 d/m/Y H:i:s,也就是说,检索到的每个模型都已经有了 $model->present()->created_at