如何防止为LANGUAGE SWITCH路由请求缓存请求Laravel Spatie responsecache

时间:2019-01-21 10:25:34

标签: laravel laravel-5 eloquent

我正在使用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');

期望的结果,当在要缓存的语言之间切换页面(链接)时,阻止请求。...

1 个答案:

答案 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');
    }
}