【发布时间】:2018-01-06 05:42:30
【问题描述】:
我有简单的控制器:
代码收件箱控制器:
<?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,
],
【问题讨论】:
-
向我们展示您的内核中间件组
-
您可以在更新的问题@Sohel0415 中看到中间件组
-
更改
return view('compose', compact('array'));而不是return view('compose', $array); -
如果您没有将
web组分配给您的路线,您就没有会话
标签: php laravel laravel-5.5