首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel-5.5:未应请求设置会话存储

Laravel-5.5:未应请求设置会话存储
EN

Stack Overflow用户
提问于 2018-01-06 13:42:31
回答 3查看 10.7K关注 0票数 2

我有一个简单的控制器:

代码InboxController:

代码语言:javascript
复制
<?php

namespace App\Http\Controllers;

use App\User;
use App\Message;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class InboxController extends Controller
{
    public function compose(Request $request)
    {
        if($request->isMethod('post'))
        {

            $rules = [
                'to'      => 'required|email',
                'from'    => 'required|email',
                'subject' => 'required|max:10',
                'message' => 'required'
            ];

            $this->validate($request, $rules);

        }

        $array = array('messages'=>$this->user_messages(), 'count' => $this->count_messages());

        return view('compose', $array);
    }
}

如果我想验证所有路由中的已发送数据,请给出错误:

代码语言:javascript
复制
Session store not set on request.

如何在Laravel 5.5中设置用于验证数据的请求会话?我必须验证compose路由中的数据

代码语言:javascript
复制
Routes
Route::group(['prefix' => 'inbox', 'middleware' => 'auth'], function(){
    Route::get('/', ['uses' => 'InboxController@index',])->name('inbox');
    Route::match(['get', 'post'], '/message/{id?}', ['uses'=>'InboxController@message'])->name('message');
    Route::match(['get', 'post'], '/compose', ['uses'=>'InboxController@compose'])->name('compose');
});

我的中间件组码:

代码语言:javascript
复制
protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\Session\Middleware\AuthenticateSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],
EN

回答 3

Stack Overflow用户

发布于 2018-01-06 14:33:07

您需要添加

代码语言:javascript
复制
 \Illuminate\Session\Middleware\StartSession::class

在kernal.php web组内的中间件中。

票数 2
EN

Stack Overflow用户

发布于 2018-01-07 12:40:50

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

代码语言:javascript
复制
Route::group(['middleware' => ['web']], function () {
// your routes here
});
票数 1
EN

Stack Overflow用户

发布于 2020-10-20 04:31:24

发生这种情况是因为

在Kernal.php (位置-> /app/Http )

$middleware$routeMiddleware.有两个阵列

Do not create alias(naming) Do $middleware数组。它必须在$routeMiddleware数组中创建。

例如

代码语言:javascript
复制
protected $routeMiddleware = [
    'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
    'can' => \Illuminate\Auth\Middleware\Authorize::class,
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    'checkLogin' => \App\Http\Middleware\CheckLogin::class,
    //here you have to add your middleware naming not in the $middleware array
];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48124640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档