2017-09-07 29 views
1

Laravel 5.5,이 코드로 업그레이드 한 후 :Laravel 5.5 파일 다운로드 전화 : withCookie는()

Call to undefined method Symfony\Component\HttpFoundation\BinaryFileResponse::withCookie() 

in CreateFreshApiToken.php (line 51) 
at CreateFreshApiToken->handle(object(Request), object(Closure)) 
in Pipeline.php (line 149) 

어떤 생각 :

$headers = ['Content-Type: ' . $fileData[2]]; 
    return Response::download($fileData[0], $fileData[1] ,$headers); 

이 오류가 발생합니다? 버그일까요? 그것은 Laravel 5.4와 잘 작동했습니다.

답변

1

CreateFreshApiToken.php의 내용을 확인해야합니다. Response::downloadSymfony\Component\HttpFoundation\BinaryFileResponse이고이 클래스에는 withCookie 메서드가 없습니다. Laravel 5.4에서는 똑같은 것처럼 보입니다. 이 클래스 코드와 어떤 미들웨어를 포함시키지 않는 경우 App\Http\Kernel.php 파일에 사용하고 있습니다.

이 PR의 Laravel Passport에서 뭔가 고장났습니다. http://github.com/laravel/passport/pull/474. http://github.com/laravel/passport/issues/489을보고 어쩌면 웹 미들웨어에서이 경로를 제거하여 Laravel Passport에서 수정이 가능할 때까지 기다릴 수도 있습니다.

+0

CreateFreshApiToken.php는 Passport에서 제공됩니다. vendor \ laravel \ passport \ src \ Http \ 미들웨어 \ CreateFreshApiToken.php. withCookie가 호출되기 전에이 줄이 있습니다. if ($ this-> shouldReceiveFreshToken ($ request, $ response)) –

+0

@PeterMatisko 최신 Passport 릴리스 (4.0.2)를 사용하고 있습니까? –

+0

예, 완전히 업데이트되었습니다. –