taylornetwork / presenter
该包最新版本(1.1.0)没有可用的许可证信息。
Laravel 的一个演示类。
1.1.0
2017-02-20 16:08 UTC
Requires
- php: >=5.4.0
- laravel/framework: 5.4.*
This package is auto-updated.
Last update: 2024-09-24 13:10:07 UTC
README
为模型添加另一个放置逻辑的地方。与其在模型中添加用于显示/格式化数据的逻辑来使模型杂乱,不如将其添加到演示者中!
这是对 laracasts/Presenter 的一次重构,增加了一些功能、命令等。
安装
通过 Composer
$ composer require taylornetwork/presenter
设置
将服务提供者添加到 config/app.php
文件中的 providers 数组中
'providers' => [ TaylorNetwork\Presenter\PresenterServiceProvider::class, ],
发布配置
$ php artisan vendor:publish
这将添加 config/presenter.php
,您可以在其中定义您希望存储演示者类的命名空间。
用法
使用 artisan 命令创建一个演示者,例如创建一个用于 User 模型的演示者。
$ php artisan make:presenter UserPresenter
这将创建一个演示者类,您可以添加不希望在模型或视图中使用的逻辑。模型属性可通过 $this->model
访问
use TaylorNetwork\Presenter\Presenter; class UserPresenter extends Presenter { /** * Get the user's full name * * @return string */ public function fullName() { return $this->model->first_name . ' ' . $this->model->last_name; } /** * Get the time since the user signed up * * @return string */ public function userSince() { return $this->model->created_at->diffForHumans(); } }
您需要在模型中添加可演示特质和 $presenter
属性
use TaylorNetwork\Presenter\Presentable; use App\Presenters\UserPresenter; class User extends Model { use Presentable; /** * Presenter Class * * @var string */ protected $presenter = UserPresenter::class; // Code }
您可以使用 present()
访问演示者
<h1>{{ $user->present()->fullName }}, you signed up {{ $user->present()->userSince }}</h1>
致谢
- 主要作者: Sam Taylor
许可证
MIT 许可证 (MIT)。请参阅 许可证文件 获取更多信息。