gpt4 book ai didi

caching - Laravel 缓存 : invalid data

转载 作者:行者123 更新时间:2023-12-04 23:45:31 26 4
gpt4 key购买 nike

我有两个看起来几乎相同的函数,它们作为来自 JavaScript 函数的 AJAX 请求一个接一个地被调用。

/**
* get all Airports for autocomplete
*/
public function getAirports(){
if(Cache::has('airports')){
return Cache::get('airports');
}

$airportModel = new Airport;

$airports = json_encode($airportModel -> _getForAutocomplete('iata_faa_code'));

Cache::put('airports', $airports, 600);

return $airports;
}

/**
* get all Countries for autocomplete
*/
public function getCountries(){
if(Cache::has('countries')){
return Cache::get('countries');
}

$countryModel = new Country;

$countries = json_encode($countryModel -> _getForAutocomplete('two_letter_code'));

Cache::put('countries', $countries, 600);

return $countries;
}

现在,当我第一次进入该页面时,我正确地获取了数据(因为它还没有被缓存)。如果我第二次访问该页面,我会得到国家/地区,但对于机场,我会收到以下错误并且不明白为什么。
{"error":{"type":"Illuminate\\Encryption\\DecryptException","message":"Invalid data.","file":"C:\\xampp\\htdocs\\laravel\\vendor\\laravel\\framework\\src\\Illuminate\\Encryption\\Encrypter.php","line":132}}
我发现,它必须通过谷歌搜索和删除缓存部分来对缓存做一些事情。如果有人能帮我解决这个问题,我会很高兴。

顺便说一下,我使用数据库作为我的缓存驱动程序。

最好的问候,马塞尔

最佳答案

我相信序列化有一些可疑之处。 $airports 在序列化过程中可能会损坏。

如果 MySQL 字段的 airports 字符串值太长,则 end 将被静默截断并且数据解密失败。

默认情况下,Laravel 建议值字段类型为文本。要使其更大,您可以使用 mediumText 或 longText 字段。

关于caching - Laravel 缓存 : invalid data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29770790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com