martijnthomas / presenter
该包的最新版本(dev-master)没有可用的许可证信息。
装饰Eloquent模型
dev-master
2019-01-04 14:28 UTC
Requires
- php: >=7.0
Requires (Dev)
- phpunit/phpunit: ^5.7|6.2|^7.0
This package is auto-updated.
Last update: 2024-09-05 03:09:27 UTC
README
装饰Eloquent模型。
安装
该包可以在Laravel 5.4或更高版本中使用。
您可以通过composer安装该包
composer require martijnthomas/presenter
在Laravel 5.5中,服务提供程序将自动注册。在框架的较旧版本中,只需在config/app.php文件中添加服务提供程序即可
'providers' => [ // ... MartijnThomas\Presenter\PresenterServiceProvider::class, ];
使用
首先,将MartijnThomas\Presenter\Presentable特性添加到您的Eloquent模型(们)中
namespace App; use Illuminate\Database\Eloquent\Model; use MartijnThomas\Presenter\Presentable; class Product extends Model { use Presentable; // ... }
接下来,您可以创建一个ModelPresenter,这个类必须扩展MartijnThomas\Presenter\PresenterAbstract。在创建的ModelPresenter中,您可以添加表示您的表示者的方法。
您可以通过$this->model访问您原始模型的数据。
namespace App\Presenters; use MartijnThomas\Presenter\PresenterAbstract; class ProductPresenter extends PresenterAbstract { /** * Format the amount * * @return string */ public function amount() { return $this->model->amount / 100; } }
接下来还有一件事要做,您需要在模型中注册该表示者。这很简单
namespace App; use App\Presenters\ProductPresenter; use Illuminate\Database\Eloquent\Model; use MartijnThomas\Presenter\Presentable; class Product extends Model { use Presentable; /** * Set the Presenter for the Model * * @var \App\Presenters\ProductPresenter */ protected $presenter = ProductPresenter::class; // ... }
现在您可以通过以下方式访问您装饰的属性
$product = Product::find(1); $product->present()->amount;
祝您玩得开心!
开放性问题
包功能尚不完整,仍需完成
- 添加表示者生成器