2017-07-27 57 views
0

我有中間件:如何將會話數據從中間件發送到佈局?

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> 
+0

您的視圖看起來如何? –

+0

我改變了我的帖子,並在'@ if之前添加了我的佈局 – wenus

回答

2

這裏是你可以做什麼。使用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('/'); 

} 

然後顯示在你的意見本次會議。

0

我做某事錯我想......我 路由看起來是這樣的:

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 

我仍然無法在佈局中看到這條消息,當我作爲學生登錄時,並且以網站爲例/教師,沒有錯誤,只爲教師訪問...... 我不添加任何東西到我的控制器?只有中間件和視圖?

+0

我認爲你可以檢查數據已經通過'{{dd(session() - > all())}}' –

+0

因爲如果使用'redirect'/login') - >('errors',$ errors)'它應該傳遞給該路由 –

+0

只有ma中間件auth重定向到/ login,但我想檢查第二個中間件(這裏是學生),如果它不是學生那麼我想重定向「/」並顯示錯誤,您沒有權限訪問那裏,現在沒有任何工作:( – wenus

相關問題