В моем файле web.php есть следующие маршруты:
Route::get('/', 'PostsController@index')->name('home');
Route::get('/login', 'SessionsController@show');
В классе SessionController есть открытый конструктор, который использует промежуточное ПО Laravel для проверки, является ли пользователь гостем:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class SessionsController extends Controller
{
public function __construct() {
$this->middleware('guest')->except(['destroy']);
public function create() {
// Validade form data
$this->validate(request(), [
'email' => 'required',
'password' => 'required'
]);
// Attempt to authenticate the user
if(! auth()->attempt(request(['email', 'password']))) {
return back()->withErrors([
'message' => 'Please check you credentials and try again'
]);
}
return redirect()->home();
}
public function show() {
return view('login.show');
}
public function destroy() {
auth()->logout();
return redirect()->home();
//return redirect()->route('home');
}
}
Что происходит, когда я вхожу в систему и пытаюсь получить доступ к /login
, меня перенаправляют на home
, но в браузере появляется сообщение "извините, страница не найдена".Я понял, что промежуточное программное обеспечение проверяет, являюсь ли я гостем, когда пытаюсь войти в систему, и если я не являюсь им, оно должно перенаправить меня на рецензируемую страницу.
Я проверил php artisan route:list
и вижу, что /
присвоено имя home
.У меня нет идей, и я буду признателен за любую помощь.