Laravel - 会话存储未根据要求设置

2022-08-30 06:47:25

我最近创建了一个新的Laravel项目,并遵循身份验证指南。当我访问我的登录或注册路由时,我收到以下错误:

ErrorException in Request.php line 775:
Session store not set on request. (View: C:\Users\Matthew\Documents\test\resources\views\auth\register.blade.php)

我没有编辑任何核心Laravel文件,我只创建了视图并将路线添加到我的路线文件中.php

// Authentication routes
Route::get('auth/login', ['uses' => 'Auth\AuthController@getLogin', 'as' => 'login']);
Route::post('auth/login', ['uses' => 'Auth\AuthController@postLogin', 'as' => 'login']);
Route::get('auth/logout', ['uses' => 'Auth\AuthController@getLogout', 'as' => 'logout']);

// Registration routes
Route::get('auth/register', ['uses' => 'Auth\AuthController@getRegister', 'as' => 'register']);
Route::post('auth/register', ['uses' => 'Auth\AuthController@postRegister', 'as' => 'login']);

我对Laravel没有太多经验,所以请原谅我的无知。我知道还有另一个问题问同样的事情,但两个答案似乎都不适合我。感谢您的阅读!

编辑:

这是我的register.blade.php根据要求。

@extends('partials.main')

@section('title', 'Test | Register')

@section('content')
    <form method="POST" action="/auth/register">
        {!! csrf_field() !!}
        <div class="ui input">
          <input type="text" name="name" value="{{ old('name') }}" placeholder="Username">
        </div>
        <div class="ui input">
          <input type="email" name="email" value="{{ old('email') }}" placeholder="Email">
        </div>
        <div class="ui input">
          <input type="password" name="password" placeholder="Password">
        </div>
        <div class="ui input">
          <input type="password" name="password_confirmation"placeholder="Confirm Password">
        </div>
        <div>
            <button class="ui primary button" type="submit">Register</button>
        </div>
    </form>
@endsection

答案 1

如果您需要会话状态、CSRF 保护等,则需要使用 Web 中间件

Route::group(['middleware' => ['web']], function () {
    // your routes here
});

答案 2

如果添加您的内部由于任何原因不起作用,请尝试将其添加到routesweb middleware$middlewareKernel.php

protected $middleware = [
        //...
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
];

推荐