如何修改关联模型的数据

user关联了userTag模型,我想将关联数据userTag修改成一维数组,但是不行

我尝试的办法

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

你这是要对查询结果集,做处理才行,而不是使用pluck数据库来处理

1个月前 评论
臭鼬 (楼主) 1个月前
阿卡卡 (作者) 1个月前

file 这个名字写错了吧。 另外第一种方式是可以的。:)

1个月前 评论
臭鼬 (楼主) 1个月前

用集合吧,那是一个神奇的模块

1个月前 评论
臭鼬 (楼主) 1个月前
颠倒的玉石 (作者) 1个月前

按我猜测,应该拿 transform 返回结果。而不是后面又去 data 转数组

1个月前 评论
臭鼬 (楼主) 1个月前

兄弟,一个月了,问题解决了吗?解决了的话能发出来参考下吗?没有的话,我再说一下我的思路。首先你的$data变量是通过

Model::with(['userTag'])->get();

获取的结果集吗?如果是的话,那这个$data结果集是一个集合,集合的每一项都是一个 Model 对象。你第一个截图后的 json 数组键名是userTag,与关联关系的方法名相同,为什么呢?因为将结果集转化为 json 时,是将关联关系的数据做了 json 转换。而你操作

$v->userTag = $v->userTag->pluck('tag_name');

时,实际上是给集合中的每个 Model 对象赋值,并没有给关联关系中的数据赋值,所以 json 的结果不会有变化。

实际操作可以参考下:

    $data->map(function($v){
        $v->setRelation('userTag', $v->userTag->pluck('tag_name'));
    });
3周前 评论
臭鼬 (楼主) 3周前
臭鼬 (楼主) 3周前
LiamHao (作者) 3周前
臭鼬 (楼主) 3周前
LiamHao (作者) 3周前
臭鼬 (楼主) 3周前
LiamHao (作者) 3周前
臭鼬 (楼主) 3周前
LiamHao (作者) 3周前
臭鼬 (楼主) 3周前
LiamHao (作者) 3周前
小李世界

遇过。文章和文章标签,返回的话,想要 ["猫", "狗"],我是直接 foreach。但是后面想想,还是直接二维数组就好,拿给前端,前端 React map 的时候,key=id 也可以用得上,主要是知识不够,又想不那么不优雅 :speak_no_evil:

3周前 评论
臭鼬 (楼主) 3周前

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