一对一连表操作,返回数据希望是一维数组

在更换框架后(客户端不动),ORM模型一对一获取数据时
希望返回一维数组,而不是关联的表数据单独在一个数组里面
接口有点多,不希望每一次获取后再单独处理,谢谢!!

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

最后决定先使用下面这个用着,能满足现有需求,谢谢!
file

3个月前 评论
讨论数量: 8

同求,坐等大神解答

3个月前 评论

第一时间想到的是一个稍微复杂的方法,先将获取到的集合转化为数组,再使用laravel的辅助函数array_dot(),将多维数组平铺成一维数组。

3个月前 评论
SimonWang (楼主) 3个月前
Epona

在模型中自定义一个 global scope 然后就可以了吧。 不过,本来将一对一关联的对象非要变成一维数组,最好不要这么弄啊。。后面坑会更多。。

3个月前 评论
ibucoin

我一般是复用的用ApiResource,不复用的map再处理一层。
用join可以写得比较方便的,用with得多写好些代码,因为默认是 select *

3个月前 评论

resource 就可以啊..........应该可以实现你想要的,自定义就好了

3个月前 评论

用过一个比较笨但可以实现的方法

通过模型的 $appends 设置需要的关联数据字段,然后通过 getAttribute 将这个关联关系的字段放入

Like this:

protected $appends = [
        'has_one_id'
    ];

public function getHasOneIdAttribute()
    {
        return $this->relationship['id'];
    }
3个月前 评论

最后决定先使用下面这个用着,能满足现有需求,谢谢!
file

3个月前 评论
panda-sir

嵌套json本来就是很好的 为啥要平铺呢? 你们前端table组件无法解析嵌套json?

3个月前 评论
SimonWang (楼主) 3个月前
panda-sir (作者) 3个月前

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!