Laravel中如何向Collection添加指定键值对数据?
解决Laravel集合添加键值对的问题
嘿,我来帮你搞定这个问题!你现在遇到的问题是因为用错了集合方法——push()是用来往集合里追加单个元素的,所以你传一个数组进去的时候,它会把整个数组当作一个元素嵌套进去,而不是解析成键值对。
要实现你想要的9 => "asd", 5 => "BMW"这种键值对格式,你需要用集合的put()方法,它专门用来给集合设置指定键的值:
正确代码示例
// 首先获取当前用户的分类集合,Laravel 5.3+ 推荐使用 pluck()(旧版用 lists() 也可以) $cats = Auth::user()->cats()->pluck('title', 'id'); // 使用 put() 添加键值对:第一个参数是键,第二个是对应的值 $cats->put('5', 'BMW');
为什么这个方法可行?
put()方法的作用就是新增或更新集合中的键值对:如果指定的键已经存在,它会覆盖原来的值;如果不存在,就会新增这个键值对到集合里,完全符合你的需求。- 而你之前用的
push(),只会把传入的参数当作一个独立元素追加到集合末尾,所以才会出现数组嵌套的情况。
内容的提问来源于stack exchange,提问作者Aleks Per
相关产品推荐
相关产品推荐

