2017-07-27 4 views
0

私が持っているミドルウェア:セッションデータをミドルウェアからレイアウトに送信する方法は?

public function handle($request, Closure $next) 
{ 
    if (Auth::check() && Auth::user()->isStudent()) 
    { 
     return $next($request); 
    } 

    return redirect('/'); 

} 
私はリダイレクトと私のレイアウトにデータを送りたいwoould

は、私はこのように行うにしようと試み :「

$errors = ['You don't have permission, this side is ony for teachers'] 
return redirect('/login')->with('errors', $errors); 

しかし、それは動作しません、私のレイアウトはdoesnのをこれを見てください。

これが私のレイアウトである:ここでは

<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

私の投稿を変更し、私のレイアウトを追加しました – wenus

答えて

2

は、あなたが何ができるかです。あなたは、この

public function handle($request, Closure $next) 
{ 
if (Auth::check() && Auth::user()->isStudent()) 
{ 
    return $next($request); 
} 

session()->flash('error','your Message') 

return redirect('/'); 

} 

あなたの意見では、このセッションを表示するように、これを行うことができ、あなたのビューでsession()->flash('error','your Message')

を使用しています。

0

私は 私のルーティングは、このようになります...私は思う間違っSTHをやってる:

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

の前に '@ if'私はあなたが' {{dd(session() - > all()}}} ' –

+0

で渡されたデータをチェックできると思います。/login ') - > with(' errors '、$ errors) 'それはそのルートに渡されるべきである –

+0

maミドルウェア認証のみが/ loginにリダイレクトされますが、2番目のミドルウェア(ここでは学生) "/"リダイレクトしてエラーを表示し、そこにアクセスする権限がないので、何も今は動作しません:( – wenus

関連する問題