我有一个简单的控制器:
代码InboxController:
<?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);
}
}如果我想验证所有路由中的已发送数据,请给出错误:
Session store not set on request.如何在Laravel 5.5中设置用于验证数据的请求会话?我必须验证compose路由中的数据
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');
});我的中间件组码:
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,
],发布于 2018-01-06 14:33:07
您需要添加
\Illuminate\Session\Middleware\StartSession::class在kernal.php web组内的中间件中。
发布于 2018-01-07 12:40:50
如果您需要会话状态、CSRF保护等,则需要使用web中间件。
Route::group(['middleware' => ['web']], function () {
// your routes here
});发布于 2020-10-20 04:31:24
发生这种情况是因为
在Kernal.php (位置-> /app/Http )
$middleware和$routeMiddleware.有两个阵列
Do not create alias(naming) Do $middleware数组。它必须在$routeMiddleware数组中创建。
例如
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
];https://stackoverflow.com/questions/48124640
复制相似问题