我想缓存查询并获取结果作为关联数组。当我这样做而不像这样缓存时,没关系:
class ItemRepositoryEloquent {
public function getItems() {
$items= Item::lists('word','key');
return $items->toArray();
}
}
但是当我尝试像这样缓存我的查询时:
class ItemRepositoryEloquent {
public function getItems() {
$items = Cache::remember('items', 1440, function(){
return Item::lists('word','key');
});
return $items->toArray();
}
}
它返回如下结果:
[
0 => array('key' => 'word')
1 => array('key' => 'word')
2 => array('key' => 'word')
3 => array('key' => 'word')
4 => array('key' => 'word')
5 => array('key' => 'word')
]
但是我希望缓存后的结果是这样的:
[
'key' => 'word',
'key' => 'word',
'key' => 'word',
'key' => 'word',
'key' => 'word'
]
提前谢谢。
您应该能够使用 collapse
方法获得所需的结果 不确定默认情况下会返回什么 记住 但这里有一个使用原始数组的示例
$collection = collect([
0 => array('key1' => 'word'),
1 => array('key2' => 'word'),
2 => array('key3' => 'word'),
3 => array('key4' => 'word'),
4 => array('key5' => 'word'),
5 => array('key6' => 'word'),
]);
然后你可以做
$collection->collapse()->toArray();
这会给你
[
"key1" => "word",
"key2" => "word",
"key3" => "word",
"key4" => "word",
"key5" => "word",
"key6" => "word",
]