在laravel中,此方法返回Collection
类型的结果:
$all_currency = CurrencyType::lists('currency_type', 'id');
结果:
Collection {#687 ▼
#items: array:2 [▼
1 => "EUR"
2 => "CHF"
]
}
现在我想添加-1 => "USD"
。但我不能这样做。我的解决方案创建嵌套数组。例如:
$all_currency->push (["-1"=>"11"]);
结果:
Collection {#687 ▼
#items: array:4 [▼
1 => "EUR"
2 => "CHF"
3 => array:1 [▼
-1 => "USD"
]
]
}
答案 0 :(得分:0)
在添加货币之前,您是否尝试将集合转换为数组?
否则,检查Collection类的接口可能会有所帮助。既然你没有提到它,它可能是Doctrine或Propel或其他什么东西?
然后您可能会发现,添加键值对有一个特殊功能,因为推送一个值,将该值(在您的情况下为一个数组)添加到您不想要的集合中。
可能无法向特定键索引-1添加值,这取决于您实际使用的ORM及其实现。
//编辑:
似乎放置了正确的方法,代码应如下所示:
$all_currency->push (-1, "11");
https://laravel.com/api/master/Illuminate/Support/Collection.html#method_put
答案 1 :(得分:0)
如果您需要使用数组,可以尝试使用toArray()方法将集合转换为数组:
$all_currency = CurrencyType::pluck('currency_type', 'id')->toArray();
$all_currency['-1'] = '11';
如果您需要使用集合,请使用put() helper:
$all_currency = CurrencyType::pluck('currency_type', 'id')->put('-1', '11');
此外,lists()
已弃用,将来也会被移除,请改用pluck()
。
答案 2 :(得分:0)