Я создаю приложение Laravel, где люди могут читать Книги.
У меня есть промежуточное ПО, которое контролирует доступ к Книге
public function handle($request, Closure $next)
{
if (!(auth()->user()->isBasic() || auth()->user()->isCouple() || auth()->user()->isFamily())) {
return redirect(route('subscription-plan'));
}
return $next($request);
}
В web.php
Для просмотра книги и подробностей книги
Route::get('/books/{book}', [BooksController::class, 'show'])->name('book')->middleware('verified');;
Для чтения книги
Route::middleware(['basic'])->group(function (){
Route::get('/read/{book_id}', [BooksController::class, 'read'])->name('read');
});
У меня 3 роли
Basi c
пара
семья
подписчик
Если вошедший в систему пользователь является подписчиком, он перенаправляется на /subscription-plan
при попытке доступа к Read
,
После подписки я хочу иметь возможность перенаправить после подписки на книгу, которую я пытался прочитать, прежде чем меня перенаправили на /subscription-plan
.
Я изучал, как использовать intended
redirect($this->redirectPath());
redirect()->intended($this->redirectPath());
Но ни один из них не работает.
Вот мой окончательный код
public function handleGatewayCallback()
{
...
redirect()->intended();
}