我正在使用Laravel Spatie响应缓存:https://github.com/spatie/laravel-responsecache和多种语言(语言切换..)。
解决方法:防止在Laravel中为语言切换器路由缓存请求。
我试图添加:-> middleware('doNotCacheResponse');在lang.switch路由中,但没有成功...
Route::get('lang/{language}', ['as' => 'lang.switch', 'uses' => 'LanguageController@switchLang'])->middleware('doNotCacheResponse');
期望的结果,当在要缓存的语言之间切换页面(链接)时,阻止请求。...
答案 0 :(得分:0)
不确定我是否理解正确。如果问题是您在选择其他语言后获得了缓存结果,那么我认为您应该清除整个缓存:
LanguageController {
public function switchLang() {
// Switch language
ResponseCache::clear();
}
}
此外,好像spatie / laravel-responsecache允许您使用ResponseCache::forget('/some-uri');
删除特定的URI
要在更改数据后删除缓存,请执行以下操作
PostController {
public function index()
{
// Display list of posts
}
public function edit()
{
// Display form to edit post
}
public function update()
{
// Delete related cache here and update post
ResponseCache::forget('/posts');
}
}