如何修改关联模型的数据

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

我尝试的办法

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

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

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

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

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

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

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

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

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

兄弟,一个月了,问题解决了吗?解决了的话能发出来参考下吗?没有的话,我再说一下我的思路。首先你的$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'));
    });
2个月前 评论
臭鼬 (楼主) 2个月前
臭鼬 (楼主) 2个月前
LiamHao (作者) 2个月前
臭鼬 (楼主) 2个月前
LiamHao (作者) 2个月前
臭鼬 (楼主) 2个月前
LiamHao (作者) 2个月前
臭鼬 (楼主) 2个月前
LiamHao (作者) 2个月前
臭鼬 (楼主) 2个月前
LiamHao (作者) 2个月前
小李世界

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

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

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