l5-repository 组件 -- Presenters

2019-01-03  本文已影响27人  爱折腾的傻小子
Presenters 过滤模型查出数据
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
# app/Repositories/BlogRepositoryEloquent.php 文件 添加如下方法
    /**
     * @return mixed
     */
    public function presenter()
    {
        return BlogPresenter::class;
    }
//> 使用指定 presenters
$this->repository->setPresenter("App\\Persenter\\BlogPresenter");
上一篇下一篇

猜你喜欢

热点阅读