Laravel 5 缓存查询 - 获取结果作为关联数组


Laravel 5 cache query - get result as associative array

我想缓存查询并获取结果作为关联数组。当我这样做而不像这样缓存时,没关系:

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",
]