如何将会话数据从中间件发送到布局?
我有中间件:如何将会话数据从中间件发送到布局?
public function handle($request, Closure $next)
{
if (Auth::check() && Auth::user()->isStudent())
{
return $next($request);
}
return redirect('/');
}
我woould喜欢将数据发送到我的布局与重定向,我tryed做这样的:
$errors = ['You don't have permission, this side is ony for teachers']
return redirect('/login')->with('errors', $errors);
,但它不工作,我没有按布局”不要看这个。
这是我的布局:
<html>
<head>
</head>
<body>
@if (session('errors'))
<div class="alert alert-dismissible alert-danger">
Wystąpiły następujące błędy:<br/>
<ul>
@foreach(session('errors') as $error)
<li>{!!$error!!}</li>
@endforeach
</ul>
</div>
@endif
@yield('content')
</body>
</html>
这里是你可以做什么。使用session()->flash('error','your Message')
在你看来,你可以做到这一点像这样
public function handle($request, Closure $next)
{
if (Auth::check() && Auth::user()->isStudent())
{
return $next($request);
}
session()->flash('error','your Message')
return redirect('/');
}
然后显示在你的意见本次会议。
我做某事错我想......我 路由看起来是这样的:
Route::group(['middleware' => ['auth', 'student']], function() {
Route::get('/subjects', '[email protected]');
}
Route::group(['middleware' => ['auth', 'teacher']], function() {
Route::get('/teachers', '[email protected]');
我fmiddleware功能手柄excatly你怎么认为,我的看法是这样的:
@if (session('error'))
<div class="alert alert-dismissible alert-danger">
<ul>
<li>{{session('error')}}</li>
</ul>
</div>
@endif
我仍然无法在布局中看到这条消息,当我作为学生登录时,并且以网站为例/教师,没有错误,只为教师访问...... 我不添加任何东西到我的控制器?只有中间件和视图?
我认为你可以检查数据已经通过'{{dd(session() - > all())}}' –
因为如果使用'redirect'/login') - >('errors',$ errors)'它应该传递给该路由 –
只有ma中间件auth重定向到/ login,但我想检查第二个中间件(这里是学生),如果它不是学生那么我想重定向“/”并显示错误,您没有权限访问那里,现在没有任何工作:( – wenus
您的视图看起来如何? –
我改变了我的帖子,并在'@ if之前添加了我的布局 – wenus