gpt4 book ai didi

php - 调用 RevalidateBackHistory.php 中未定义的方法 Symfony\Component\HttpFoundation\BinaryFileResponse::header()

转载 作者:行者123 更新时间:2023-12-04 17:47:41 25 4
gpt4 key购买 nike

我编写了一个中间件,以便用户登录后无法再次进入登录页面。如果已经登录,它将重定向到管理面板。

这是代码:

class RevalidateBackHistory
{
public function handle($request, Closure $next)
{
$response = $next($request);

return $response->header('Cache-Control','nocache, no-store, max-age=0, must-revalidate')
->header('Pragma','no-cache')
->header('Expires','Fri, 01 Jan 1990 00:00:00 GMT');
}

}

我在一个名为 NoticeController 的 Controller 中调用了它
 public function __construct()
{
$this->middleware('auth');
$this->middleware('revalidate'); //this is the middleware
}

我还在这个 Controller 中定义了一个函数来下载一个文件,代码是
public function downloadFile($id)
{
$notice = new Notice();
$data = $notice->where('id',$id)->first();

if (file_exists(public_path().'/uploads/files/'.$data->file))
{
return response()->download(public_path().'/uploads/files/'.$data->file);
}
else
{
Session()->flash('message.notice',"File not found");
return redirect('admin/notice/info');
}

}

下载功能很完美,我在另一个 Controller 上也用过这个功能。但是 当我调用 downloadFile() 函数时,这个 Controller 内部发生了问题,它给出了以下异常。

(1/1) FatalThrowableError

调用未定义的方法 Symfony\Component\HttpFoundation\BinaryFileResponse::header()
在 RevalidateBackHistory.php 中(第 20 行)
在 RevalidateBackHistory->handle(object(Request), object(Closure)) in Pipeline.php(第 148 行)

如果我从构造函数中删除 重新验证 中间件,该函数工作正常。这个问题的解决方案是什么?

最佳答案

您应该使用以下代码编辑 handle 函数。

$response = $next($request);
$headers = [
'Cache-Control' => 'nocache, no-store, max-age=0, must-revalidate',
'Pragma','no-cache',
'Expires','Fri, 01 Jan 1990 00:00:00 GMT',
];

foreach($headers as $key => $value) {
$response->headers->set($key, $value);
}

return $response;

用于在 RevalidateBackHistory 中间件文件中设置标题

关于php - 调用 RevalidateBackHistory.php 中未定义的方法 Symfony\Component\HttpFoundation\BinaryFileResponse::header(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47429829/

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