Presenters 过滤模型查出数据
- 使用之前需要安装依赖包
composer require league/fractal
- 使用文件夹目录
app
-- Presenters
--> BlogPresenter.php # 示例文件名称
-- Transformers
--> BlogTransformer.php # 示例文件名称
<?php
namespace App\Presenters;
use App\Transformers\BlogTransformer;
use Prettus\Repository\Presenter\FractalPresenter;
/**
* Class BlogPresenter
*
* @package namespace App\Presenters;
*/
class BlogPresenter extends FractalPresenter
{
/**
* Transformer
*
* @return \League\Fractal\TransformerAbstract
*/
public function getTransformer()
{
//> 返回当前 app/Transformers/BlogTransformer.php 实例对象
return new BlogTransformer();
}
}
<?php
namespace App\Transformers;
use League\Fractal\TransformerAbstract;
use App\Models\Blog;
/**
* Class BlogTransformer
* @package namespace App\Transformers;
*/
class BlogTransformer extends TransformerAbstract
{
/**
* Transform the \Blog entity
* @param \Blog $model
*
* @return array
*/
public function transform(Blog $model)
{
//> 指定当前model查询出来的数据 为 指定的数据格式 并返回
return [
'id' => (int) $model->id,
/* place your other model properties here */
'created_at' => $model->created_at,
'updated_at' => $model->updated_at
];
}
}
使用 Presenters
- No 1. 全局应用 一旦调用 $this->repository 提供的方法就会使用
# app/Repositories/BlogRepositoryEloquent.php 文件 添加如下方法
/**
* @return mixed
*/
public function presenter()
{
return BlogPresenter::class;
}
//> 使用指定 presenters
$this->repository->setPresenter("App\\Persenter\\BlogPresenter");
网友评论