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

file

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
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年前 评论

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