Laravel Transform 转换器

abstract class Transform
{
    public function transformCollection(array $items,$transform='transform')
    {
        return array_map([$this, $transform], $items);
    }

    public abstract function transform($items);
}

继承

class Demo extends Transform
{
    public function transform($items)
    {
        $mobel_user = new Users;
        $user = $mobel_user->find($items['uid']);
        return [
            'img'=>$user['img'],
            'nickname' => $user['nickname'],
            'demo_name' => $items['demo_name']
        ];
    }
}

实例化

$Demo = new Demo();
$items = $Demo->transformCollection($items);

转换前数据

before=[
    ["id"=>1,"demo_name"=>"baba"],
    ["id"=>2,"demo_name"=>"mama"]
]

转换后

after=[

["img"=>"baba_img","demo_name"=>"baba","nick_name"=>"baba_nick_name"],

["img"=>"mama_img","demo_name"=>"mama","nick_name"=>"mama_nick_name"]
]

当然user表和demo表是需要有关联的。

这个转换器的好用是不需要用foreach。
缺点是不能添加多个参数。

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

API 资源不香吗?

4年前 评论

简单的 我选择resource

麻烦的 用transform

transform的include还是挺好用的
(可惜trans没有命令行创建文件 手动创建好麻烦的)

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!