Итак, у меня есть привязка модели маршрута:
Route::model('questionnaireAttachment', \App\Models\QuestionnaireAttachment::class);
У меня также есть политика, зарегистрированная в AuthServiceProvider. php:
QuestionnaireAttachment::class => QuestionnaireAttachmentPolicy::class,
, и мой маршрут похож на this:
Route::get('questionnaire/attachments/{questionnaireAttachment}', [
AttachmentController::class,
'getAttachments'
])
->name('questionnaireAttachmentRetrieve')
->middleware('can:view,questionnaireAttachment');
политика вернула false; в этом, так что я знаю, что это терпит неудачу, однако, когда я делаю запрос к конечной точке, несмотря на возврат false; я все еще добираюсь до контроллера и получаю действительный ответ 200
public function getAttachments(QuestionnaireAttachment $attachment): \Symfony\Component\HttpFoundation\StreamedResponse
{
$file = Storage::disk('local')->exists("{$attachment->path}/{$attachment->filename}");
if (!$file) {
return Storage::disk('s3')->download("{$attachment->path}/{$attachment->filename}", $attachment->filename);
}
return Storage::disk('local')->download("{$attachment->path}/{$attachment->filename}", $attachment->filename);
}