使用 liyu/dingo-serializer-switch 包之后 with 部分还带 data 正常吗

file

图中pictures是通过with关联出来的数据,使用了liyu/dingo-serializer-switch包之后还存在data,这样正常吗,有办法去掉吗

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
liyu001989
最佳答案

这是个集合数据,没有个 key 的话这个数组怎么放,你尝试着把数据写出来,你看看是个 json 吗

5年前 评论
讨论数量: 4
liyu001989

这是个集合数据,没有个 key 的话这个数组怎么放,你尝试着把数据写出来,你看看是个 json 吗

5年前 评论

@liyu001989 话是这么说,自己拼接的话可以做到更简洁,将数组放到pictures里,pictures作为key,这样就可以省略data这一层了

5年前 评论
liyu001989

你想这么干,一定是有方法的,fractal 可以自己定义结构,你也可以修改源码提交 pr。

但是,你放弃了数据的灵活性,pictures 是个数组,没法增加其他的额外信息,而对象就可以增加一个 meta。

你想清楚为什么要费劲的去掉一层 data。

5年前 评论

可以试试用 fractal 的include , 第三个参数是 resourceKey

class MessageTransformer extends TransformerAbstract
{
    protected $availableIncludes = [
        'attachments',
    ];
    // protected $defaultIncludes = [
    //     'attachments',
    // ];

    public function transform(Message $message)
    {
        return [
            'id' => $message->id,
            'body' => $message->body,
        ];
    }
    public function includeAttachments(Message $message)
    {
        return $this->collection($message->attachments, new AttachmentTransformer,'foofoo');
    }
}
4年前 评论

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