【发布时间】:2019-06-20 19:24:18
【问题描述】:
我的 api 有一个路由文件,我使用 this 包来缓存整个响应。
routes/api.php
<?php
Route::get('/types', 'TypeController@indexType')->middleware('cacheResponse:600');
这很好,但是当我在请求中有特定标头时我需要跳过这个中间件加载,所以我制作了这个额外的中间件
conditionalCacheResponse.php
<?php
namespace App\Http\Middleware;
use Closure;
class ConditionalCacheResponse
{
public function handle($request, Closure $next)
{
if (request()->header('Draft') != true) {
$this->middleware('cacheResponse:3600');
}
return $next($request);
}
}
这样设置
routes/api.php
<?php
Route::get('/types', 'TypeController@indexType')->middleware('conditionalCacheResponse');
但不工作,我不确定我是否可以通过这种方式附加中间件。
【问题讨论】:
-
你不能只在
cacheResponse中间件的handle()方法中进行条件检查吗?见stackoverflow.com/a/52754969/2929617
标签: laravel caching middleware